1.STM32开发方式
STM32开发一般包括三种方式:基于寄存器开发、基于标准外设库开发、基于HAL库开发。
标准外设库是最基础的STM32开发方式,提供了一系列函数用于配置和控制STM32的外设,如GPIO、USART、SPI等。使用标准外设库需要手动编写代码,对于有一定嵌入式开发经验的开发者来说比较熟悉。其优点是灵活性高,可以根据具体需求进行定制开发,但缺点是编写代码量大,开发周期较长。
HAL库是STM32提供的一套高级抽象层,封装了底层的硬件操作,提供了一系列易于使用的函数接口。使用HAL库可以大大简化开发流程,减少代码量。开发者只需要调用相应的函数,即可完成对外设的配置和控制。其优点是开发效率高,适合快速开发和原型验证,但缺点是灵活性相对较低,对于一些特殊需求可能需要自行编写底层代码。寄存器开发是通过直接操作寄存器进行开发,但是由于STM32的寄存器数量众多,逐个查询比较繁琐。其优点是对底层了解深入,可以实现一些HAL库无法实现的功能,但缺点是需要手动编写大量代码,且容易出错。
后续应该大力推广的是基于HAL库的形式,但是由于我自己用的是基于标准外设库开发方式,就只在此记录基于标准外设库的工程新建过程。
2. 新建工程文件夹
2.1 下载标准外设库
标准外设库可以到STM32社区下载STM32官方标准库网址: https://www.stmcu.org.cn/下载。这里我所用的芯片为STM32F103C8T6,下载的库为STM32F10x_StdPeriph_Lib_V3.5.0,解压后目录如下;
其中:Libraries为库函数文件;Project为官网的例程;Utilities文件夹是ST官方评估板源文件(不能了解); Release_Notes.html是固件库的发布日志;stm32f10x_stdperiph_lib_um.chm文件是固件库的帮助文档,可以直接双击打开。
2.2 创建文件夹放置项目工程
创建一个新的文件夹,我这里是命令为controller_project,然后在该文件夹里面创建四个子文件夹来存放不同的文件,包括user、project、FWLIB和CMSIS。其中,user文件夹用来存放主函数和一些用户自定义函数;project文件夹用来存放项目工程文件以及起始代码文件;FWLIB文件夹用