本人由于学习和工作原因,接触了不少类型的单片机。从最早开始学的用汇编写代码的8051 8位机,后来改用C写代码,再到后来又接触进口、国产各个厂家的8位机,感觉用法大同小异。
由于工作需要,几年前又在一些项目中用到一种不够大众化的4位机,纯汇编,使用体会就是用起来挺不方便的,各种限制,优点是当时性价比挺高,很久没接触了,不知现在如何。
再后来需要做些稍大的项目,接触了ST的32位,一开始使用网上资源比较多的M3内核的型号,刚开始有些难度,主要在思维方式上需要转变。用的久了,发现32位机在使用灵活程度上不是8位、4位能比的,至少自已做的一般的项目从来没有去考虑过程序、数据存储空间够不够用,堆栈溢出的问题,用8位机时可是整个过程都是把资源想办法省着点用的,比较抠搜。
STM32可直接寄存器编程写代码,也可使用库函数。直接寄存器编程的写法就和8位机使用方法类似了,不过这个寄存器相当多,做复杂项目会比较头疼的。我一开始就选择使用库函数,直接摒弃寄存器编程的做法。
ST厂家的库函数有多个版本,开始用各种库函数还需要不停查资料,太多了记不住啊。当知道HAL库的STM32CubeMX时,像是发现了新大陆,个人感觉太方便了,特别是对初学者。在图中配置参数,自动生成基本代码,自己只要用C语言去完成需要实现的功能就行了。
本人按照自己使用STM32CubeMX的心得,整理出应用笔记,供后辈参考,其中大部分内容是参考了前辈的做法,因为我在没使用之前一窍不通。前辈后辈与年龄无关,学无先后,达者为先。