如何系统地入门学习stm32?

举报
无际单片机编程 发表于 2021/10/19 01:39:53 2021/10/19
【摘要】 我从事单片机开发多年,用过非常多芯片,有stc、中颖、GD、新唐、BLE、Zigbee、NXP、还有一些国产SOC等等,唯独ST的让我最省心,不管是STM8还是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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。