首先,学习STM32的前期准备通常建议在学完51单片机后开始。尽管51也使用C语言,但由于缺乏库函数,主要以逻辑堆叠和较多的汇编写法为特点。在半个月左右,你可以基本掌握简单的51C语言编程,由于对硬件有了更深入的了解,这个过程应该不会太难。
然而,上手STM32时可能感到困难。与互联网开发不同(面向对象确实是更好的开发模式),单片机开发需要机器思维。这是我在做了很多项目后的感悟,特别是后来转向算法开发后更为明显。
在STM32之前,使用的是标准库进行开发。ARM通过封装位操作和寄存器操作,只需按需调用相应端口或定时器。大约在2015年,推出了HAL库,虽然很多人不太适应。我一直没学,直到2017年实习时,公司除了飞控开发使用C++外,其他设备开发多使用HAL库。学了之后发现确实有些坑,但总体而言优于标准库,因为ARM公司正逐渐使开发朝向面向对象,引入了更多的封装和回调函数。

回到正题,为什么说了这么多呢?就是为了给你一个学习的轮廓,有目标的学习效果是截然不同的。简单来说,只要你弄懂了上面提到的内容,就足以找到一份工作。我学习HAL库差不多不到两个月,期间用STM32完成了几个项目,例如电机力效测试仪(一项专利产品,因为不再继续研究就没了,还以一万一个卖过)、智能电池控制充电装置、电机智能控制器等,举不胜举。
我这里有一套嵌入式学习资料,包含编程基础知识、HAL库应用技巧、实战项目指南和高频笔试面试题,适合初学者和有经验的工程师,需要的关注我,评论区回复999 私信回复 99 不用担心学习资料的问题全部免费发给你