编程语言应用

首页 » 常识 » 预防 » 如何系统地入门学习stm32
TUhjnbcbe - 2023/8/27 22:12:00

我从事单片机开发多年,用过非常多芯片,有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差吗?

或许他们对系统的理解都没你深,更别说对硬件驱动的理解了。

1
查看完整版本: 如何系统地入门学习stm32