电子产业一站式赋能平台

PCB联盟网

搜索
查看: 29|回复: 0
收起左侧

已经会用stm32做各种小东西了,下一步学什么,研究stm32的内部吗?

[复制链接]
匿名  发表于 2024-3-14 09:50:00 |阅读模式
你点击蓝字关注,回复“入门资料”获取单片机入门到高级开挂教程
开发板带你入门,我们带你飞

文 | 无际(微信:2777492857)
全文约1582字,阅读大约需要 5 分钟
今天看到了一个提问,原话如下:

这个问题,我能装逼。
曾经干了10年单片机工程师,对工程师从入门,到入行,再到普通,再到高级,整个路径还算清晰,比如什么阶段,会碰到什么瓶颈,怎么突破,我都经历过。
这个同学,有个典型的问题,就是学得太多且杂了,估计稍微复杂点的项目,做不出来。
现在首要任务,就是做减法
先定位好,自己想往哪个方向发展,放弃一切与这个方向无关的技术,深入学习
假设,你想往单片机方向,目前学完了STM32,能做出各种小玩意。
那接下来的目标,是往程序架构和可靠性设计方向发展,实现功能的同时要考虑功能扩展性,还有移植性,这是成为高级工程师必须要攻破的瓶颈。
如果你对扩展性和移植性的概念有些模糊,抽象。
我举个例子:
比如STM32的固件库,有没有发现扩展起来很方便?移植性就更不用说了,一个库能兼容很多个型号的单片机。
那程序架构是什么?
比如RTOS,我的理解就是一个实时性很高的程序架构,一般像这种系统,就是整个产品代码的"地基"。
没必要去研究STM32内部,对技术成长帮助不大,会用单片机和精通单片机内部,对产品开发来说,差异甚微。
很多人在这个阶段,可能会冲RTOS,我的经验是,别冲,现阶段不适合!
RTOS什么时候冲我认为最合适?
就是你自己能设计整个程序架构的时候,比如我设计过"毛坯版本"的轮询任务架构。

在2019年的时候,还专门录制了一套关于这个架构的教程,在小破站,同名无际单片机编程,有兴趣的可以自己去看。
还做过定时器矩阵的小架构。

还有一些队列,链表之类的数据结构和小算法。

当然,更复杂点的事件型驱动架构我在产品用过。

能学到这个程度,再去冲RTOS,小菜一碟,因为很多原理,和RTOS很像。
但能学到这个程度,很不容易,虽然也是半桶水,也花了我10年的时间,才积累出来。
我们把毕生所学,比如高扩展性、高移植性的架构设计,都集中到无际项目特训营的《4G&WiFi报警主机》项目上了。

如果能到这个阶段,你已经具备产品架构的设计能力了,RTOS对你来说,可有可无。
大多数单片机项目,"毛坯版本"的轮询任务架构完全够用。
曾经有几个人问过我,轮询的怎么规避实时性的问题。
我说我比较LOW,都是靠经验去人为规避的。
我没碰到过,非要上RTOS这种系统才能做的项目,对我来说,非刚需,上了也是累赘。
在刚做开发的时候,有一个毛病,明明可以不用指针,非要用,感觉不用代码显得不专业。
其实根本没有明白指针的精髓所在,只是为了装逼而用。
等我接触到一些复杂项目的时候,有些细节不知道怎么处理。
比如有个.c文件代码是要保密,要封库,不能给别人看到源代码,但又要给别人使用该代码的功能。
比如.c文件解析一帧协议,解析过程代码,不能开源,但最终的解析结果,要提供给使用者。
这种需求下面,怎么写最好?
就是用回调函数。
我是通过WiFi模块厂家提供的代码,摸索出来的。
如果没有这种实际应用,靠网上搜集对回调函数概念的解释,压根就不能理解它能解决的痛点。
所以,学完单片机以后,最好的成长路径,就是不断找项目做,从简单到复杂,逐渐提升编程思维和代码水平。
当编程经验丰富了以后,再学队列,链表,RTOS之类的,会事半功倍。
不管数据结构也好,算法也好,什么时候学,什么时候用?
我就一个原则:真正只有它,才能更好解决痛点的时候。
否则,代码写得越简单,越好理解,越好。
end


下面是更多无际原创的个人成长经历、行业经验、技术干货。
1.电子工程师是怎样的成长之路?10年5000字总结
2.如何快速看懂别人的代码和思维
3.单片机开发项目全局变量太多怎么管理?
4.C语言开发单片机为什么大多数都采用全局变量的形式
5.单片机怎么实现模块化编程?实用程度让人发指!
6.c语言回调函数的使用及实际作用详解

7.手把手教你c语言队列实现代码,通俗易懂超详细!

8.c语言指针用法详解,通俗易懂超详细!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表