单片机库在单片机开发中扮演着重要的角色,单片机库提供了许多预定义的函数和数据类型,可以简化单片机的编程过程,提高开发效率。同时单片机库为单片机的各种外设提供了标准的接口,使得开发者可以更加方便地使用这些外设,而无需深入了解其内部细节。
单片机库经过了严格的测试和验证,具有一定的可靠性和稳定性。使用单片机库也可以提高单片机的可靠性,减少因编程错误或硬件故障导致的系统崩溃或数据丢失。
目前ST库主要包括以下几种:
1、STM32Snippets:这是一个直接操作寄存器的库,需要一定的开发功底,目前只在STM32F0和L0系列中有提供。
2、标准外设库:这是用的最多的库,因为几乎全部使用C语言实现,但是现在慢慢不推了,但是还是很多人在用,不支持从STM32 L0、L4和F7开始的之后的STM32系列芯片。
3、HAL库:HAL库是为了取代之前的标准外设库的。STM32Cube HAL库表现出更高的抽象整合水平,可以很好的从一个STM32的平台移植到另一款STM32的平台上,但是这样的应用场景其实很少,因为选定选型时候就是有考虑的,除非产品升级。目前,HAL库是支持STM32全线产品的。
4、LL库:LL库可以独立于HAL库,也可以和HAL库混合使用。某种程度上说:LL库是对原来标准库移植到Cube下的新的实现,LL库更接近硬件层,是支持所有外设的。
使用ST官方的是桌面软件STMCubeMX可以根据项目需求直接配置后生成外设库文件程序,其中引用的是HAL库和LL库。使用STMCubeMX减少开发周期,但是对于用惯了标准库的,还是有一定的学习成本的。
可以从ST官网 https//www.st.com/stm32cube下载软件。下载好后根据提示进行安装即可,下面我们使用STMCubeMX来生成一个HAL库的USART工程文件。
1、软件安装完成后,点击HELP选择Updater Settings,配置固件存放的路径,并将自动更新检查关掉,如下图所示。设置完成后点击OK。
2、在Updater Settings选项下,点击Connection Parameters,点击NoProxy将代理关掉,如下图所示。设置完成后点击OK。
3、点击File下的New Project新建工程,如下图所示
4、选择要使用的单片机型号。
这里我们以STM32F407IGT6为例,双击选择对应单片机的型号。
5、选择RCC,开启外部高速时钟。
6、选择USART1串口,在mode下配置为异步模式,通信参数使用默认配置即可。
7、点击Clock Configuration配置系统时钟
8、点击Project Manager对工程文件进行管理,点击Code Generator将Generate peripheral initialization as a pair of ".c/.h' files per peripheral勾选,选项这样可以独立生成对应外设的初始化.h和.c 文件
9、在Project Manager下,点击Project 可以修改工程名称,存储路径、生产的软件版本等信息,如图所示。
10、生产完成后可以点击Open Project打开工程。
至此全部配置完成。
通常直接配置HAL库的情况相对较少。开发者会使用STM32CubeMX等图形化配置工具来生成使用HAL库的工程文件。这样可以大大简化配置过程,提高开发效率。