"); //-->
大家好,我是麦鸽,最近有网友提问
用STM32的话,是学标准库还是HAL库?
对于新手,我想说,不要和自己过不去,一开始不要搞得太难,要循序渐进。
新手经常会问的问题,先学51还是STM32,
或者之前有网友提问,写PC软件是学MFC还是Qt?
其实诸如此类的问题,都不能忽略一个问题就是学习曲线,是否对初学者友好。然后再看后续是否再值得深入学习,是否有学习的价值。
对于单片机而言,标准库还是HAL库,只不过是操作硬件的中间件而已,我们不需要再去生硬地去查芯片手册,去配置寄存器,可以更快地搞定底层的配置,集中精力搞定应用部分的开发。
image
单片机开发通常是这样架构,或者会再跑个RTOS,一般裸机开发,我们会把一些硬件模块写成单独的驱动模块,向上提供接口给应用层。
而这里会操作到一些芯片的资源,就可以通过调用固件库里的接口,比如配置GPIO,硬件I2C和SPI,或者中断和定时器,使用库函数,或者HAL库,一条函数就够了,自己配置寄存器可能需要十几条语句,而且配置寄存器的话,如果有点粗心配置错了,那么中间所花费的调试时间,也会很长。
另外,STM32的标准库貌似已经不在更新了,如果作为学习的话,也是可以的,学习资源还是很多的。
如果直接学HAL库,也没问题,学习资源也很多。比如CUBEMX直接支持图形化配置了。
关键不管学习哪一个库,不能只停留在表面。
换个库,或者换个硬件平台,就啥都不会了,这样还是不行。其实通过学习标准库,或者学习HAL库,去熟悉STM32这个平台,例如;
通用的一些外设,比如ADC,UART,I2C或者SPI等等;常用的中断,定时器中断,外部中断,如何触发方式;
去了解这些库的封装方式。
调试的时候,可以调入底层去看。到后面我们其实会发现,如果换一个硬件平台,或者换一个库,本质还是相同的,无非是对底层的近一步封装,多看看官方提供的Demo程序,学会自己移植,增加新的功能。
遇到硬件Bug的时候,还是要Debug到底层,对着芯片手册去排查,到这一步,那么你的开发水平其实也算不错了的。实在解决不了,再找原厂的FAE去解决哈。慢慢地,开发水平就提高了。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
相关推荐
手把手教你学ARM-STM32 第一讲 绪论(上)
基于STM32的MP3播放器设计与实现(提供MDK完整源码)
「STM32 Flash 操作全解析」擦除、写入、读取一网打尽!附完整源码
FreeRTOS 在STM32上的移植 V1.0
如何使用STM32的PVD对电源的电压进行监控
轻松适配STM32F1/F4,UltraLink开源项目详解 + 脱机烧录全流程演示
STM32 5向摇杆接口电路
STM32 100M、10M网卡电路(下)
IAR_STM32开发板原理图
手把手教你学ARM-STM32 第二讲 STM32最小系统
“sacq”的STM32运行uCGUI演示的视频片段1
RealView MDK开发STM32奇怪错误的解决
三款经典的STM32开发板例程汇总
STM32 心电图方案全解析:手把手教你开发医疗级心电监测设备!
详解STM32单片机的堆栈
采用按键消抖电路,不用再软件延时了
STM32的定时器进行输入脉冲的计数(代码).
STM32 GPIO的十大优越功能综述
结合RTC实现的“智能定时任务系统”:设计与实战
STM32 100M、10M网卡电路(上)
STM32 3.3V参考电压(用于DAC和ADC)
STM32微控制器系列——常见问题解答(基本篇)
功率监测与控制系统DIY——搭建环境,定时器翻转LED
基于STM32的智能地震监测预警系统
STM32 3.3V电源电路(提供给CPU和大部分外设)
STM32开发-LL库与HAL库对比
STM32的低功耗模式总结!
基于STM32指甲式脉搏血氧仪七大核心功能解析与实现
汽车表盘显示和GPS地图显示的动感演示
手把手教你学ARM-STM32 第三讲 系统时钟初始化函数与延时函数的实现