目录
STM32 HAL库所在的层次
STM32的HAL库所处的位置
标准库与HAL库所处的位置
对于STM32而言,可以分为3层,即:
- MCU层
- CMSIS层
- 用户层
用户层的代码就是我们的具体应用程序
CMSIS层是ARM公司提供的一些利用内核的通用特性来编写的一些接口
比如CMSIS DSP库,CMSIS实时系统API以及内核外设函数等,这些是内核通用的,放在了CMSIS层
HAL库属于CMSIS中的设备外设函数层
STM32CUBEMAX固件包
STM32CUBEMAX固件包中的文件包括:
- Documentation文件夹
说明文档,如何使用HAL库固件包
- Drivers文件夹
包含BSP\CMSIS\HAL Driver这三个文件夹。其中:
1. BSP为官方开发板的支持库包
2. CMSIS为前面讲述的 CMSIS标准除外设驱动外的各种接口库
3. HAL Driver就是HAL库驱动包了
- Middlewares文件夹
中间件,提供一些对硬件的服务
其中ST文件夹下为ST官方的中间件,包含emWIN图形界面库和USB主从机接口库
Third_Party为第三方的中间件,如FatFs)文件系统、FreeRTOS实时系统、LwIP网络协议栈
- Projects文件夹
官方开发板的各种工程实例,包含各种外设如何使用,以及外设与中间件的耦合
非常有参考价值
- Utilities文件夹
通用的一些文件,比如官方实例中用到的一些音频、视频、字库资料
不重要
Keil配置时的注意点
1. 选择C99模式
2. 勾选使用MicroLib
3. 打开Keil中的上电复位设置
如图所示,首先点击Debug,然后选择Settings
然后选择Flash Download,并勾选Reset and Run
注意:这里非常重要,如果不勾选,则通过SWD下载的程序不能直接运行,而需要上电复位后才能运行(复位后进入.s文件中的ResetHandler)。由STM32Cube生成的Keil工程这里默认都是不勾选的!
STM32CUBEMAX选择固件包存放的位置
固件包存放的位置,可以在CUBEMAX中进行设置
STM32CUBEMAX下载指定的固件包
STM32CUBEMAX生成代码时的库选择(HAL或LL)
STM32CUBEMAX生成代码时的配置选择参考
STM32CUBEMAX生成函数的位置调节
STM32CUBEMAX 生成函数的位置,可以在这里调节
STM32 HAL库的使用方法
HAL库的使用方法介绍,打开对应的xx_hal_xx.c文件查看即可,在最上面的注释里