stm32hal库说明文档

小编语:为你精心整理的stm32hal库说明文档,希望对你有帮助! 如果喜欢就请继续关注我们博文学习网(www.hnnscy.com)的后续更新吧!

stm32hal库说明文档篇一:STM32固件库详解

STM32固件库详解

/emouse/archive/2011/11/29/2268441.html

1.1 基于标准外设库的软件开发

1.1.1 STM32标准外设库概述

STM32标准外设库之前的版本也称固件函数库或简称固件库,是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API,通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设。因此,使用固态函数库可以大大减少用户的程序编写时间,进而降低开发成本。每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。每个器件的开发都由一个通用API (application programming interface 应用编程界面)驱动,API对该驱动程序的结构,函数和参数名称都进行了标准化。

ST公司2007年10月发布了V1.0版本的固件库,MDK ARM3.22之前的版本均支持该库。2008年6月发布了V2.0版的固件库,从2008年9月推出的MDK ARM3.23版本至今均使用V2.0版本的固件库。V3.0以后的版本相对之前的版本改动较大,本书使用目前较新的V3.4版本。

1.1.2 使用标准外设库开发的优势

简单的说,使用标准外设库进行开发最大的优势就在于可以使开发者不用深入了解底层硬件细节就可以灵活规范的使用每一个外设。标准外设库覆盖了从GPIO到定时器,再到CAN、I2C、SPI、UART和ADC等等的所有标准外设。对应的C源代

码只是用了最基本的C编程的知识,所有代码经过严格测试,易于理解和使用,并且配有完整的文档,非常方便进行二次开发和应用。

1.1.3 STM32F10XXX标准外设库结构与文件描述

1. 标准外设库的文件结构

在上一小节中已经介绍了使用标准外设库的开发的优势,因此对标准外设库的熟悉程度直接影响到程序的编写,下面让我们来认识一下STM32F10XXX的标准外设库。STM32F10XXX的标准外设库经历众多的更新目前已经更新到最新的3.5版本,开发环境中自带的标准外设库为2.0.3版本,本书中以比较稳定而且较新的V3.4版本为基础介绍标准外设库的结构。

可以从ST的官方网站下载到各种版本的标准外设库,首先看一下3.4版本标准外设库的文件结构,如图 5-3所示。3.0以上版本的文件结构大致相同,每个版本可能略有调整。

图 5-3 STM32F10XXX V3.4标准外设库文件结构

表 5-4中介绍了每个文件夹所包含的主要内容。

表 5-4 STM32F10XXX V3.4标准外设库文件夹描述

标准外设库的第一部分是CMSIS 和STM32F10x_StdPeriph_Driver,CMSIS 是独立于供应商的Cortex-M 处理器系列硬件抽象层,为芯片厂商和中间件供应商提

供了简单的处理器软件接口,简化了软件复用工作,降低了Cortex-M 上操作系统的移植难度,并减少了新入门的微控制器开发者的学习曲线和新产品的上市时间。STM32F10x_StdPeriph_Driver

则包括了分别对应包括了所有外设对应驱动函数,这些驱动函数均使用C语言编写,并提供了统一的易于调用的函数接口,供开发者使用。Project文件夹中则包括了ST官方的所有例程和基于不同编译器的项目模板,这些例程是学习和使用STM32的重要参考。Utilities包含了相关评估板的示例程序和驱动函数,供使用官方评估板的开发者使用,很多驱动函数同样可以作为学习的重要参考。

STM32F10xxx标准外设库体系结构如图 5-4所示。图中很好的展示了各层以及具体文件之间的联系,各文件的具体功能说明如表 5-5所示。

图 5-4 STM32F10xxx标准外设库体系结构

表 5-5 文件功能说明

stm32hal库说明文档篇二:stm32cubeMX 串口使用文档

一 建立STM32cubeMX工程

1.建立新工程,选择芯片STM32F302CCTx

2. 在Pinout中时钟配置为高速外部时钟,UART配置为异步通信,cube会自动分配引脚。

3.Clock Configuration中配置如下

4.configuration中点击USART1可进入配置

在USART1 configuration 中Parameter Settings可以配置波特率,发送数据字长,奇偶校验位和停止位等。NVIC Setting可以配置中断优先级。

5.生成keil软件代码

点击工具栏中的齿轮按钮,可以选择代码的开发平台,ok结束。(文件保存路径一定要是全英文的)

进过了我们一系列的配置,cube会为我们自动生成keil软件的代码,代码中包括工程所需的固件库,配套的头文件,启动文件及用户文件。在main.c中包括了我们工程所需外设的初始化,包括了系统时钟初始化,中断初始化,GPIO初始化,USART1初始化,HAL库初始化。我们只需要在main.c中添加我们自己的代码就可以了。

二 keil软件代码及HAL库使用

UART_HandleTypeDef huart1;生成的代码中有声明一个USART处理的结构体

HAL库中串口的数据收发有四个函数

HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);

HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData,

stm32hal库说明文档

uint16_t Size, uint32_t Timeout);

指针huart指向我们之前定义的USART处理结构体,我们将在函数中对结构体中的参数进行操作。pDate是我们自己定义的数据发送接收缓存,Size发送接收数据个数,Timeout超时持续时间。

UART状态的结构体:

我们在发送接收函数中要经常对USART的状态进行判断,以便我们对函数结构体中的参数进行操作,

发送函数一开始定义了一个uint16_t *tmp的指针。我们在这里判断发送接收的字长(8byte或9byte),当传送的数据是9位数据时,HAL_UART_Receive_IT函数第二参数要求传参uint8_t类型,到这里不够,于是强转uint16_t类型,将低9位数据保留移交给tmp,同时指针移动2个8位,也就是 huart->pRxBuffPtr += 2。这样,就能解释为何在下面的8位数据位不需要tmp中间变量了,直接将数据放入我们的数据缓存地址。

中断处理函数:

打开中断后会先调用这个中断处理函数(该函数在启动文件stm32f3xx_it.c中)

在void HAL_UART_IRQHandler(UART_HandleTypeDef *huart)函数中会使用__HAL_UART_GET_IT和__HAL_UART_GET_IT_SOURCE先检查各个中断是否被占用和是否失效,在调用中断之前还会进行错误的检查。OverRun Error、Noise、Framing Error、Parity Error等

stm32hal库说明文档篇三:最新的STM32固件库下载流程

Stm32固件库的官网下载流程(最新)

首先搜索关键词“st官网”一般第一个就是意法半导体的官网,汉化的不是很完善。 进入官网,点击“支持”

进入“支持”页面:

点击“Tools and Software”,进入该页面:

点击“软件”,进入软件页面:

点击“微控制器软件”,进入该页面:

点击“STM32微控制器软件”,进入选择页面:

选好合适的选项;

此时下方就找到了对应版本的库函数:

点击进入下载页面:

点击下载,这样就可以免费下载最新版本的ST固件函数库了。