文章目录:
有系统学习stm32 HAL库开发相关的书籍或者例程吗
首先STM32中没有delay的库函数 你所用的delay函数是属于战舰开发板的源程序 是由原子哥他们写的 你可以去看他们的完整的源代码 你要用delay_ms()这个函数 肯定会有一个函数是delay_init() 他们的延时用的是滴答定时器 systick 所以你必须要对他进行初始化 而我好像没有在你的程序中看到有延时函数的初始化
STM32 的 HAL 库好用吗
别人写的 你参考一下:
半年前接触 STM32,刚开始 MCU 用的 32F1,库用的标准外设库 3.5,写过一些简单的东西。
再后来发现 ST 还有一个软件叫做 STM32 CUBE MX,可以自动的生成初始化程序,对于我这个 32 新手来说无疑是天降福音!终于不用为繁琐的配置而苦恼了(其实就是自己对各项配置不熟,而且没有自己积累的程序可以 Ctrl C + Ctrl V)。
虽然 CUBE 用的是 ST 新出的 HAL 库,与以前的 标准外设库完全不兼容,甚至基本的 I/O 操作都变了,会让习惯了
标准外设库的人很苦恼。但是我对标准外设库也不是很熟,而且 CUBE 的界面化设计真的让 配置工程变得很方便,再加上它还有一个类似于 FPGA
的引脚分配界面,让资源分配,PCB 布局布线也方便了不少,于是我选择了用 CUBE ,用 HAL 库。
很早就开始的写 32 的朋友有不少,他们也试过 HAL 库,可最后无一例外都选择了继续使用标准外设库。他们表示完全不习惯 HAL 库,另外 HAL 库不太好,毕竟是自动生成的配置,没有自己手动配置的来得熟悉来得透彻,谁知道软件是怎么给你配置的工程。另外 CUBE 就是给那些不会写 32 的人用的(ST 的官方的说法似乎也是 HAL 是为了方便做嵌入式相关且对底层不熟的人设计的,但想不通他为何要把两个库做得不兼容)。
前面一直在画 PCB ,调 PCB ,做机械之类的,没有写程序。最近又开始写 32,现在用的 MCU 是 32F4,库是 HAL/F4库 1.6.0。可是我发现我连 GPIO 的上拉输出都实现不了,无论如何 I/O 始终默认输出低电平(操作 I/O可以实现电平跳变),这个问题我昨天查了一天,从库到最底层的寄存器都看了,可没发现什么问题。周围用 HAL 库的就我一个。。。
有些无奈了,难道 HAL 库真有什么问题吗?如果真有这么明显的问题,ST 官方肯定早就发现了。
已经下好了标准外设库,打算换标准外设库,工程从头到尾都自己配置,这样出了问题也更方便找。
可是我始终有一点想不明白,既然 ST 官方在推 HAL 库,那肯定也有他的道理,我们也应该勇于接受新事物,为何身边的朋友却都不愿意接纳 HAL 库。
stm32库函数算hal层吗
stm32库函数算hal层。
stm32 :
STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-0内核(ST's product portfolio contains a comprehensive range of microcontrollers, from robust, low-cost 8-bit MCUs up to 32-bit ARM-based Cortex®-M0 and M0+, Cortex®-M3, Cortex®-M4 Flash microcontrollers with a great choice of peripherals. ST has also extended this range to include an ultra-low-power MCU platform)[1] 。按内核架构分为不同产品:
其中STM32F1系列有:
STM32F103“增强型”系列
STM32F101“基本型”系列
STM32F105、STM32F107“互联型”系列
增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是32位产品用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。
stm32 HAL固件函数库 这个函数怎么理解
__weak修饰词就表示,这个函数不会被调用。但是你可以使用这个函数名,再自己写一个函数来使用。
知道软件是怎么给你配置的工程。另外 CUBE 就是给那些不会写 32 的人用的(ST 的官方的说法似乎也是 HAL 是为了方便做嵌入式相关且对底层不熟的人设计的,但想不通他为何要把两个库做得不兼容