第一次接触stm32的软硬件设计项目的一点感受
硬件设计
项目开头肯定是硬件设计,一般来说,在做硬件设计之前,要先了解mcu内部的各个功能和管脚分配情况,电源情况等等。我以前有不少设计Ti公司dsp的硬件设计的经验,每次设计dsp硬件的时候,最头疼的是总线逻辑加上电源配合方面的设计,另外ti的dsp的ad模拟电路也比较麻烦。这次我设计stm32的硬件时,发现stm32的硬件设计方便了不少,一个3.3V解决所有供电问题,不同电压之间的时序配合不用费心了。管脚腿功能可以随意转换。极大的简化了硬件电路的设计。片内集成的flash和ram容量变化范围广泛。简单的应用基本上不需要考虑外扩总线设计了。
软件设计
以前每次码dsp代码,都得看1个月的芯片手册。研究各种功能的寄存器配置。到了stm32,我惊喜的发现,直接hal库,很多功能不用再关注寄存器具体配置了。直接用cubemax可以解决大部分寄存器配置问题。cubemax生成初始project代码后,直接用免费的cubeide(其他收费的ide也行)打开后,码应用功能代码即可。基本上可以一周完成实现快速编码工作。
吐槽
前面说了半天stm32的优点,下面讲讲我感觉不方便的地方,hal库包括了arm公司编的用于arm核心cpu的cmsis库,加上st公司编的用于外设hal_driver库,要想看懂整个hal框架程序,需要花费不少时间。而为了增加一些更复杂的功能,不看懂hal框架程序,真有点无从下口的感觉呀。所以,深入进去,想花几天时间搞定复杂功能,基本上不太现实呀,不过干啥事不都是这样吗?要想成为高手,必须花足够的时间,深入钻研才行呀。