零基础学stm32要多久?stm32应该怎么学?

举报
无际单片机编程 发表于 2021/10/19 00:48:57 2021/10/19
【摘要】 STM32由于资料丰富、稳定、性价比高深得广大工程师和企业的喜爱。 现在随便在招聘平台上搜索单片机开发或者嵌入式开发,基本都要求会STM32。 我用STM32也有很多年了,基本上是围绕着F103、F0...

STM32由于资料丰富、稳定、性价比高深得广大工程师和企业的喜爱。

现在随便在招聘平台上搜索单片机开发或者嵌入式开发,基本都要求会STM32。

我用STM32也有很多年了,基本上是围绕着F103、F030系列来做产品,对这个芯片的学习深有感触。

很多新手入门stm32都感觉很复杂,几百个寄存器,复杂的内核结构,详细的数据手册都几百页。

再加上软件是基于固件库开发,其中涉及到了大量的结构体、枚举、指针的应用。

如果没一定的C语言和单片机基础想快速入门还是比较困难的。
在这里插入图片描述

今天结合自己经历和经验,来跟大家分享下自己曾经是怎么快速学会stm32的。

**

1.零基础学stm32要多久?

**
如果你不懂电路基础、不懂C语言、不懂51单片机,千万不要一上来就学STM32。

还是那句话:看起来你是走了捷径,最终你花的时间肯定更长。

Stm32的定位就是给工程师缩短产品开发周期用的,而不是给新手去学习单片机的。

因为固件库把底层的硬件驱动都写好了,你只需调库应用就行了,如果你没接触过51单片机,你可能压根都不知道单片机有寄存器的存在,而外设功能就是通过配置寄存器来实现的。

这种原理性的东西你不了解,后面每学一个外设,你可能都会产生很多疑问,为什么要这样配置?我想改配置怎么改?改了出现问题如何解决?

所以,如果按照正确的学习路径,从51到STM32,一个月的时间基本可以学完(每天8小时)。

那我总结最快的学习路径,在我以前文章有写,每个阶段学到什么程度都写的很清楚,并且给出了相应的教程和工具。

2.stm32应该怎么学?

我第一个学的单片机是51,然后就参加工作了,工作中用到了stc和nxp的,那时nxp用起来也比较痛苦,一个32位的单片机要配置寄存器来用。

后面制定新产品方案的时候,老工程师推荐用stm32干,说开发周期快,价格也比nxp便宜。

然后我就开始去研究STM32了,其实也没有刻意去学习,就买了一块开发板(主要是想要他们的例程)。

我先分析了我这个产品需要用到哪些外设,比如说GPIO、定时器、USART、ADC、中断,后面看了有个DMA也挺爽就顺势研究了下。

我的研究方法是直接用例程先在开发板跑一下,看下效果。

然后我会自己改一下例程,看下改哪个地方分别对应什么功能,比如说例程是操作PA0引脚循环高低电平切换来让LED闪烁,那会改成PB1或者其他,还有定时器中断改成20ms,30ms分别测试下。

这一波操作下来我基本就知道外设怎么用了。

Ok,至于芯片其他功能以及内核结构我就先不研究了,因为暂时用不上,先把产品干出来完成任务再说。

前前后后就花了1周时间,产品需要的外设就全部实现了,剩下的跟单片机就没关系了,而是功能逻辑处理了。

看到这里,或许很多人还是不明白,我总结一下:
1.最好先学51单片机
2.Stm32不用系统学习,当做一个工具能用起来就行了。
3.通过产品去学习一款单片机是最快的。

我看到很多人学习stm32,有1年都学不会的,也有几个月都学不会的,看的那个揪心啊!

很明显学习方法和路径不对,最常用的就那么几个外设,看着视频1周完全可以学完。

学完后,做项目一脸懵逼,无从下手是正常现象。

这不代表你单片机没学好,而是你缺乏产品的思维,不知道怎么结合外设、结合代码把功能实现。

所以,学完外设直接就干项目,最好找个经验丰富的人带着你做产品,这样成长最快,自己瞎做你接触不到别人好的代码架构和产品的思维。

虽然闭门造车,代码随便写也能实现产品功能,但是功能复杂以后,终究需要一个好的架构来支撑,否则后面会出现很多BUG可能导致你程序无限重写。

文章来源: blog.csdn.net,作者:无际单片机编程,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_43982452/article/details/114638192

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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