为什么我学51单片机很顺利,学STM32却一头雾水?_stm32 一辈子也学不完

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Golang全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注go)
img

正文

当时,我想跟着这些老油条做,即便不挣钱积累点经验也好就答应了。

整个项目需要用到2个单片机,一个51单片机做屏显示,一个做主控,主控这边需要一个类似于ARM7这种资源丰富点的单片机。

这个项目我非常积极,主动要求做工作量最大的主控程序,然后钱平分,同事听到连忙点头叫好。

硬件选型是他选的,他推荐我们用STM32的单片机,开发起来挺爽,我也不懂,完全听他安排,反正这个项目我完全冲着学东西去的,哪怕是自己亏点钱

在同事设计电路的时候,我就同步开始研究STM32单片机,最好等硬件回来就能开始调试功能。

下图是我最终写好的代码,所有功能代码都写在main函数里,没用单独函数单元,现在看着真的是太渣了。

img

学习一款新单片机最好的方式就是买一个开发板,所以我自掏腰包买了一个开发板。

那个时候开发板还没现在这么完善,只有每个外设使用的例程,没有配套视频教程。

开发板拿到以后,我就开始从最简单的GPIO开始学习。

但…当我打开GPIO工程的那一刻,我懵逼了…这是什么鬼?用一个IO口怎么都这么复杂?

到处都是结构体,指针,回调函数。

STM32和51单片机代码架构不一样,虽然底层都是配置寄存器去使用单片机外设,但STM32不用我们自己配置寄存器,而是调用官方固件库直接打开。

所以,原本是学STM32单片机的,最后变成了学固件库,学会固件库你就学会了STM32

但是想要学固件库,需要你有一定的代码理解能力和水平的基础铺垫,比如说你要熟悉指针、结构体、枚举。

很多人心急,一在开发板上学完51单片机,马上就开始学STM32,连项目都不做一个,有些甚至直接学STM32。

导致在学习STM32的时候举步艰难,每学一步都碰到各种问题无法解决。

这也是为什么我们无际单片机编程要求学员先学51单片机,再做一个项目,做完再学STM32的原因。

学习这个就像我们玩游戏一样,先升级搞装备,再挑战boss。

我在学习STM32之前已经接触过几个项目,所以至少保证了固件库代码都能看得懂。

我一边改开发板的例程,一边在开发板上做实验。

我会举一反三去做实验,比如说开发板是配置PA0,那我会改成PB0、PC0试试。

其他外设同理,开发板开启定时器1,那我会改成定时器2。

我只研究我这个项目用到的外设,GPIO、定时器、串口、NVIC、DMA、RTC、ADC。

其它没用到的我看都不去看。

大概花了半个多月的时间,我就把这些外设用起来了,用熟了以后感觉太爽了,比51单片机和LPC爽多了。

用熟固件库,甚至连数据手册都不用看就能把外设用起来,更别说看寄存器了。

项目时间也紧,没时间给我去研究。

时隔多年回想起这件事,我都感觉误打误撞走了捷径,我很庆幸当初没深入去研究寄存器,没深入去看数据手册,不然走的弯路能绕地球一周。

因为看了也是白看,根本看不懂,还会打击自己自信,有现成代码为啥不用?

STM32单片机外设用起来以后,后面基本上就没怎么研究过单片机内部的东西了,剩下的时间基本就是完成产品的功能。

所以,学习STM32最好的方法就是通过项目去学习。

等你做开发几年以后,相信你也会明白,虽然我们从事单片机程序开发,但真正的核心不是单片机,而是你的编程水平和思维。

当你连自己写代码实现功能都困难的时候,先不要去想如何把代码写的更好,而是先实现。

等你实现了以后,再想代码怎么能写得执行效率更高、可移植性、可扩展性更好?

执行效率讲求的算法,可移植性和可扩展性讲求的是程序架构。

这块,没经历过几个中大型项目的锤炼是很难领悟的。

程序架构这块,我在19年录制了一套比较系统的教程,目前看来可能是实用性比较强的。

img

教程讲了指针、结构体、回调函数、任务管理、队列这些高级的应用。

也可以直接套在自己产品上,至少能提高30%的开发效率。

教程都是开源的,不用花1分钱,跟无际单片机编程拿就可以了。

最后总结:

  1. 学习STM32最快的方式就是通过项目去学习。
  2. 不用每个外设都学,只需要学常用的外设,剩下项目用到再去学。
  3. 把STM32当作一个工具使用,外设会用就行。

Ok,今天就写到这里,写写删删,不知不觉肝了2个小时,如果对你有帮助,麻烦给我安排个三连吧^^!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
p1024b (备注Go)**
[外链图片转存中…(img-3driauE0-1713187161951)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值