作者| strongerHuang WeChat公共帐户| strongerHuang1。
我应该选择寄存器开发STM32还是标准外设库? 2.您有STM32L0标准外设库吗? 3. HAL库和LL库有什么区别? 。
。
。
让我们谈谈开发STM32的四个库:STM32Snippets标准外围设备库STM32Cube LL STM32Cube HAL 1STM32Snippets什么是STM32Snippets? STM32Snippets可以翻译成“代码段”。
和“切割”。
实际上,它们就是我们通常所说的“寄存器”。
开发STM32的基础驱动程序代码。
例如,用于配置ADC引脚的代码段:__INLINE void ConfigureGPIOforADC(void){/ *(1)启用GPIOA,GPIOB和GPIOC的外设时钟* / / *(2)为PA1选择模拟模式* / / *( 3)为PB1选择模拟模式* / / *(4)为PC0选择模拟模式* / RCC-> AHBENR | = RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN | RCC_AHBENR_GPIOCEN; / *(1)* / GPIOA-> MODER | = GPIO_MODER_MODER1; / *(2)* / GPIOB-> MODER | = GPIO_MODER_MODER1; / *(3)* / GPIOC-> MODER | = GPIO_MODER_MODER0; / *(4)* /} STM32Snippets是高度优化的示例代码的集合,使用CMSIS Direct寄存器访问来减少代码开销,从而在各种应用中最大化STM32 MCU的性能。
STM32Snippets主要面向低级开发人员,或者是从51岁转向直接操作寄存器开发人员的开发人员。
是一组未封装的示例代码,可以看到基础寄存器。
每个STM32系列中有100多个演示了如何以最小的内存占用量有效地使用STM32外设。
STM32Snippets当前仅正式提供:STM32F0和L0示例代码包。
提供的示例代码在某种程度上类似于标准外设库样式。
让我向您展示F0的代码包:还提供了Keil MDK和IAR EWARM项目。
2Standard Peripheral Library标准外围设备库:缩写为SPL,也称为标准外围设备库。
我相信学习STM32的朋友对标准外围设备库并不陌生,标准外围设备库是一组外围设备的C语言代码的集合。
(因为ST正式推广STM32CubeMX,SPL的更新已停止)。
标准外设库是一个基于寄存器的简单软件包,主要用于面向过程的嵌入式系统开发人员。
目前,标准外设库支持STM32F0,F1,F2,F3,F4,L1,并且不支持F7,H7,MP1,L0,L4,L5,G0,G4和其他更高版本。
因此,不要再问:在哪里下载L0标准外围设备库。
3STM32Cube LL和HALLL:低层底层库HAL:硬件抽象层,硬件抽象层库STM32Cube HAL和LL与STM32CubeMX工具配合开发STM32。
它也是由ST正式推动的用于STM32开发的一组库。
HAL针对具有一定嵌入式基础的开发人员,并且HAL具有良好的可移植性。
与HAL相比,LL库具有简单的结构,并且针对那些从事SPL(标准外设库)或寄存器开发的人员。
STM32Cube HAL和LL当前是官方的主要推手,并且侧重于库的维护和更新,我也建议大家学习。
并且新模型(例如L5,G4等系列)没有标准的外围设备库,只有STM32Cube HAL和LL库。
4四个库的比较来自官方的比较信息,包括可移植性,优化和难度。
其中:可移植性:可移植性优化:优化容易:难易程度硬件覆盖率:硬件覆盖率定位:支持的设备:最近添加的STM32Cube MP1,尚无官方统计。
库之间的转移:这是本文的结尾,希望以上内容对您有所帮助! ------------结束------------跟随微信公众号“嵌入式列”,底部菜单查看更多内容,然后回复“添加组”。
按照规则加入技术交流小组。
免责声明:本文内容经21ic授权后发布,版权归原作者所有。
该平台仅提供信息存储服务。
本文仅代表作者的个人观点,并不代表该平台的立场。
如有任何疑问,请与我们联系,谢谢!