能详细地讲讲stm32该怎么学吗?
现在一说到嵌入式、单片机,很多人想到的可能是STM32。
因为STM32的市场应用实在是太广了,我们在招聘平台随便搜嵌入式/单片机工程师,都要求最好会STM32.
当然,一款单片机的火爆绝对不是空穴来风。
我自己也用STM32开发过很多产品,客观地说确实比大多数单片机用起来要省心。
主要体现在以下几点:
- ST把复杂的东西封装了起来(寄存器配置),使得我们直接调用固件库就能轻松使用。
- 芯片比较稳定,不会有乱七八糟奇奇怪怪的问题。
- 不同系列兼容性强,固件库通用性强。
到目前为止,我做了开发近10年,现在最喜欢用得单片机依然是STM8/STM32.
但凡用STM32做产品,效率都很高,因为代码框架都是复制粘贴,剩下的就是完成产品功能。
如果你像我这样,自己写了一套通用性比较强的程序架构,至少能缩短30-50%产品代码的开发周期。
Ok,下面来聊聊stm32该怎么学?
这里只分享我亲身经历过,并成功的方法,我没做到的绝对不误导,我能做到的,按照我的方法你也一定可以!
STM32和51单片机不一样,51单片机我一般要求无际单片机编程的学员要相对深入地学习。
说白了就是要搞懂如何通过配置寄存器去使用单片机外设的,这对我们理解单片机和一些别的功能芯片都有很大的帮助,比如说LCD驱动芯片、时钟芯片、存储芯片等等。
大多数芯片都是需要配置寄存器去实现芯片特有的功能,我们核心是理解这个,其次就是通过数据手册去看每个寄存器每个位对应什么功能。
而学习STM32则需要一定的技巧,否则你会有走不完的弯路,别人学半个月,你学1年,差距就是这么大!
新手最容易走弯路的有以下几点:
- 深入研究寄存器,以为用寄存器开发就很牛逼
- 看不懂数据手册,就以为学不会
- 以为把STM32的外设都学完才能做产品
- 看得多,实践得少。
学习STM32,我总结出来的核心就4个字:循环渐进!
不要一下想把STM32的内部资源吃得透透的,会让你吃不了兜着走。
很多都是通过开发板去学习的,开发板基本上把STM32每个外设资源都利用起来了。
其实很多可能你工作10年也用不上,比如USB、以太网、FSMC、SDIO、CAN。
这些对新手来说也是比较难的,很多如果你没写过一定的代码量理解起来也很困难,在你经验不足的时候学习周期会更长,不划算。
而且实际产品开发,跟开发板还是有挺大区别,实际产品需要考虑成本尺寸多因素,同样一个屏驱动,一般产品不会用开发板的方式去做。
我认为前期新手只需要学习以下几个外设就可以了:
GPIO、systick、定时器、NVIC、EXTI、串口、DMA、ADC。
除了外设以外,还需要掌握常用协议:
IIC、SPI、单口通讯。
学完这些,学习STM32的任务也算是完成了,剩下的外设工作/项目需要再针对性学习。
那接下来的任务呢,就是不断通过STM32去做项目,比如说我们无际单片机编程带学员做的网关。
虽然硬件看起来没什么东西,但是精华都在程序里。
大家如果有兴趣去拆解下大厂做的产品,基本硬件没啥东西,但是功能还挺丰富,这样可以有效降低批量出货的风险,毕竟硬件一出问题分分钟赔到破产。
我们这个主机整个程序分为三大板块:
- STM32外设
- 自己写程序架构
- 产品功能程序
程序架构是贯穿整个项目的,而不是某个文件的代码,其中涉及到很多考验你编程水平的代码,比如指针、结构体、枚举、队列、回调函数、链表、任务管理等等。
如果通过开发板,我们一般只能学会STM32外设,学不到程序架构、产品思维,更别说提升自己编程水平。
而这些往往才是企业需要的,听到耳朵起茧的项目经验就包含了这两项能力,而不是你会用什么单片机。
所以,很多人虽然把STM32的外设都能用起来了,但是感觉还是什么都没学会?
其实,就是你没把你学的东西落地,没通过它们做出实实在在的东西。
即便做出来了,也感觉不是很完美,感觉很不专业,你写的代码都是你认知水平内的。
想提高,就必须向做得更好的人,更有经验的人学习。
当你真正做过一个中型以上的项目,做过几年开发,你就会发现,单片机屁也不是,就是个工具而已。
随手一个单片机过来你都能得心应手,游刃有余。
现在更是如此,原厂/代理商提供外设例程,提供技术支持,你只需要懂复制粘贴,就能把单片机外设用起来。
最后总结:
新手学会用单片机的外设以后,学习的重点绝对不再是单片机,而是怎么通过这个工具去做项目。
核心的东西,是通过项目练出来的,不要闭门造车,多向大佬看齐。
能详细地讲讲stm32该怎么学吗?相关推荐
- 零基础学stm32要多久?stm32应该怎么学?
STM32由于资料丰富.稳定.性价比高深得广大工程师和企业的喜爱. 现在随便在招聘平台上搜索单片机开发或者嵌入式开发,基本都要求会STM32. 我用STM32也有很多年了,基本上是围绕着F103.F0 ...
- 超声波模块详细介绍(stm32循迹小车中超声波的介绍)
超声波模块详细介绍(stm32循迹小车中超声波的介绍) 超声波模块是非常重要的一个模块,今天给大家全面介绍一下超声波模块的原理以及用法,代码的编写. 1 超声波模块的认识 首先,市面上的常见超声波模块 ...
- stm32难不难学,没学51单片机可以直接学STM32吗?
10年前,我是跨行自学进入嵌入式单片机开发这个行业. 学习的过程很枯燥,当初差点放弃,但是后面我通过一些技巧顺利进入这个行业并以此为生. 结合自己的经验,我先给大家总结原因,再给出解决办法: 1. 学 ...
- STM32单片机怎么学最快?用这个方法只需要一周!
最近看到很多小伙伴学STM32学的一脸茫然,有些甚至学1年都不会,有些虽然学会了外设使用,一做起项目来无从下手. 那今天通过自己的经历来告诉大家STM32怎么学最快,领悟到了1周学会绝对没问题! 一. ...
- 超详细OpenMV与STM32单片机通信 (有完整版源码)
目录标题 1.前言(闲话) 2.硬件连接 3.软件代码---OpenMV端 4.软件代码---STM32端 5.利用PC端测试数据数据是否发送接收正常 6.学习补充 (代码看不懂的时候可以来看一下) ...
- 做一台STM32小车需要学些什么?
今天的分享来源于我在ac乎上回答的一个问题: 我觉得这个问题挺有意思的, 都是拉电话线的专业,都是在学习STM32,都对小车感兴趣,那就让我这个通信老狗来谈谈自己的见解~ 下面正文开始~ 做一个stm ...
- 禁欲28天!一宅男居然肝出如此详细Web安全学习笔记,学妹看完直接抽搐了!(第二弹)
2.1. 网络基础 2.1.1. 计算机通信网的组成 计算机网络由通信子网和资源子网组成.其中通信子网负责数据的无差错和有序传递,其处理功能包括差错控制.流量控制.路由选择.网络互连等. 其中资源子网 ...
- 全网最详细黑苹果安装教程,一学就会的方法,赶快学起来吧
可以说:这是一套目前最全面的黑苹果安装教程,为了能让每个新手,更好的理解和掌握相关方法,教程按操作流程书写,新手请务必按顺序阅读,以便提高学习效率,高手可以随意观看,或者飘过.由于篇幅长度有限,一篇文 ...
- 数据存储(超全,超详细,零基础也都学的会)
1.基本的内置类型: 2.类型的基本归类: (1)整形家族: 有符号和无符号的区别在下文中有提到. (2)浮点型家族: (3)自定义类型 (4)指针类型: (5)空类型: 通常用于表示函数返回值,函数 ...
最新文章
- (附视频) | AI奠基人、美国AI科学家特伦斯谈深度学习​
- Rushcrm:客户关系管理适合的才是好的
- python中整数类型的表示需加引导符号_Python内置类型及常见问题
- 关于损失函数的一些个人理解
- Android-Universal-Image-Loader 框架使用
- [SpringBoot2]web场景_静态资源规则与定制化
- python的最受欢迎的库_2018年最受欢迎的15个Python库
- 【Git】Git基本操作详解
- sql server 监视_使用动态管理对象监视SQL Server –请求
- paint java_java – 为什么paint()/ paintComponent()从未被调用?
- Tomcat 下载安装教程
- Mac下用命令行打开pdf文件
- 如何利用jqGrid表格方法重新设置caption属性值
- NPN与PNP型传感器的区别
- 使用linaro工具链编译ARM64架构内核
- 从一个程序员到月入7万自由职业者的故事—《打造你的赚钱机器》让我坐过了4站地铁...
- 麒麟820和鸿蒙系统,网曝魅族正在适配麒麟820和鸿蒙系统,黄章:我怎么不知道...
- css 网格布局_CSS网格布局三年
- 微信投票1人1票php制作,微信投票怎么刷票,微信人工投票1毛一票
- 哨向 Mika Lelush 3