如何系统地入门学习stm32?
我从事单片机开发多年,用过非常多芯片,有stc、中颖、GD、新唐、BLE、Zigbee、NXP、还有一些国产SOC等等,唯独ST的让我最省心,不管是STM8还是STM32。
省心只要是体现在稳定,只需要按照常规方法配置就不会有乱七八糟奇奇怪怪的问题出现。
之前碰到过最蛋疼的芯片,有些Flash会掉数据,有些串口不稳定,最后还得用程序来规避芯片的不人性化,明明1个小时能搞定的,硬是给这些奇怪的问题拖了几天。
如果说在样品阶段测试出来还好,如果是大批量才慢慢出现这些问题,估计老板撕了你的心都有。
所以在成本要求不是特别苛刻的情况下,我一般都会用ST的。
STM32对刚入门的不是那么友好,但是对有一点开发经验的,还是能大大缩短开发周期的。
那新手要如何去学习STM32呢?无际根据自己的经历总结出最有建设性的学习方法,如果你能适应这种学习方法,1周搞定stm32绝对没问题!
1. 改变思维
当你有系统学习stm32的时候,就注定你会走很多弯路,甚至浪费很多时间最后也学不会。
因为内部结构越复杂的单片机,你学习需要花费的时间就越多。
但是你有没有想过,你学单片机的目的是什么?
肯定不可能只是为了学单片机这么简单对吧?而是通过单片机来做产品,或者说DIY一些有趣的项目。
人的一天真正高效工作学习的时间或许8小时都不到,我们怎么利用好这8个小时直接决定你和别人的差距。
比如说我做一件事,我会拆解完成这件事我要做哪些工作,然后把最核心的环节拿出来优先做,就像做产品,先实现功能再优化细节。
同样的方法用在学习stm32也很合适,stm32在整个产品当中其实只是一个工具而已。
既然是工具,那当然是能用起来就行了,无非就是用芯片的外设而已,你系统的去研究它干嘛?
2. 正确学习姿势
我一直都比较提倡新手从51单片机学起,把精力放在c编程和培养项目思维上,与其有空去深挖单片机,还不如多做几个项目。
我刚开始是使用stc的芯片做过几个项目,然后产品需要接触到stm32。
我先把产品需要用到的单片机外设整理出来,再买一个开发板,然后把我要的外设先在开发板上跑一遍。
同一个例程我会改一些参数,比如说换个引脚、换个定时时间、换个串口,换个ADC通道,DMA通道等等。
大概知道知道怎么配置以后,我就不会再去研究别的功能了,比如内部时钟树架构,USB、CAN、FSMC这些。
照样不影响我把产品做出来,慢慢地我经验也丰富了,对stm32也熟悉了,就是这么自然而然的过程。
3. 最后总结
一个新鲜事物,我认为正确的顺序应该是先用起来,用熟了你再去研究它原理会事半功倍。
很多人说单片机很简单,没前途,玩linux才牛逼。
我个人的观点是,如果你把思维局限在单片机上确实是。
对于老手来说,单片机只不过一个工具而已,核心的还是你的编程水平和产品思维以及在这个行业的经验。
在我看来,不见得玩Arm+Linux就比单片机的工资高或者牛逼。
任何行业都有大神和半桶水,
如果你能编写一个类似于Ti蓝牙协议栈的轻量级系统在单片机中运行,你觉得技术会比Linux差吗?
或许他们对系统的理解都没你深,更别说对硬件驱动的理解了。
文章来源: blog.csdn.net,作者:无际单片机编程,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_43982452/article/details/117854663
- 点赞
- 收藏
- 关注作者
评论(0)