stm32不同开发板之间的程序代码可以相互移植吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32不同开发板之间的程序代码可以相互移植吗?相关的知识,希望对你有一定的参考价值。
比如野火开发板的源代码我可不可以在神州开发板上用呢?如果可以,要怎么移植呢?修改哪些东西呢?
可以是可以,不过别人编的东西,移植起来都是比较麻烦的。主要是硬件定义,比如管脚。你先找到原来的硬件定义文件,对照新的板子修改,可能新的开发板源文件会使用不同版本的库文件,里面的某些函数和宏定义会不同,这个也要注意。具体的问题可以等到编译的时候慢慢改。 参考技术A 可以相互移植。因为没有实际做过不清楚需要修改那些东西。供参考stm32入门开发板选野火还是正点原子呢?
两个可以说都是行业标杆。
不能说哪个比哪个更好,各有特色,适合自己就是最好的,同行之间都是相互参考去做的。
我从以下几个维度来对比下:
1.教程
2.代码
3.开发板价格
4.进阶
一、教程
两家教程都是完全开源的,大家对野火的教程好评比较多,开始几章由浅到深讲解地很好。
有些c基础不是很好的人也能跟上,能理解STM32的外设使用底层也是从寄存器配置进行代码二次封装来的。
后面一些章节似乎换了老师,讲解地更加偏向实际项目,站在初学者的角度,或许听起来有点费劲,但死磕也能学到不少东西。
正点原子的话正好相反,刚开始的几个章节可能对新手不是很友好,反而后半段更适合初学者。
对于初学者来说,其实不需要讲的多深入,最重要是能让你理解。
二、代码风格
野火的代码宏定义多,虽然初学者觉得很绕,不直观、但更加严谨,一般在实际项目开发的时候这种做法有利于程序可扩展性和可移植性。
我看网友喷的最多的就是正点的代码,代码风格不太适合作为实际项目的参考。
我觉得,不管怎么样,还是那句话:能让你理解才最重要,不要过河拆桥了。
大家定位都是不一样的,既然你是初学者,又是刚入门STM32。
就不要去管什么代码风格,程序架构的东西了,能把功能实现就不错了。
第一步你得把功能试下吧,实现过程中肯定会踩坑,然后再去想为什么?怎么优化?
你只有经历了这个过程,你对好的代码理解地才更透彻,否则你的理解永远只停留在表面。
就好比,你以为用了指针程序就很专业,实际上根本没解决什么痛点,强行装逼而已。
三、开发板价格
开发板价格作为最后的考量,也是有原因的。
两家价格相差不大,整体来说原子的开发板质量比野火好些。
质量好坏,并不是最核心的问题,反正肯定能正常用起来,只是质感好坏而已。
现在我的开发板都在某个角落吃灰,一般做实验的时候用一下,用完就丢一边了。
四、进阶
通过开发板,基本就能顺利突破新手期,剩下的就是进阶,就是达到独立完成功能的水平。
不要指望开发板能让你的水平有质的飞跃,开发板的目的是让你学会单片机外设的使用,仅此而已。
学会外设,不代表你就会做项目了,因为还缺两种能力:
1.项目思维
也就是给你一个功能需求,它会用到单片机什么外设?数据如何采集?或者用什么信号去控制?逻辑功能怎么用程序去实现它?
2.编程水平
等你有了思路,你还得有一定的编程水平写代码去实现。
当然,在工作的前几年,我基本都是以实现功能就行,根本不考虑程序架构,不考虑代码写得好不好,不考虑后期客户要不要改功能。
正是因为考虑不周,我吃了很多亏,就直接的体现就是经常加班改代码。
如果程序架构好,这些问题可能几分钟就解决了。
3.如何提升
只能通过不断做项目去积累,但是也不是没有捷径的。
捷径就是能找到一个资深人士学习,跟着他做项目,学习他的项目思维和编程经验。
这样你就能节约大量自己摸索的时间。
举个例子,同一种功能,新手的写出来可能是这样的:
而我们无际单片机课程项目的代码架构是这样的:
虽然本质都是轮询方式去执行,但是灵活度很明显我们写出来的更高,可以单独控制每个函数执行时间等等。
最后彩蛋时间!!!
最近很多小伙伴找我要一些单片机学习资料,然后我根据自己从业十年经验,熬夜肝了几个通宵,精心整理一份「单片机入门到高级教程+工具包」,全部无偿共享给大家!!!
除此以外,再含泪分享我压箱底的22个热门开源项目,包含源码+原理图+PCB+说明文档,让你迅速进阶成高手!
据说有小伙伴靠这份资料顺利进入BAT大厂,所以保存了一定要好好学习。
教程资料包和详细的学习路径可以看我下面这篇文章的开头。
单片机入门到高级开挂学习路径(附教程+工具)https://blog.csdn.net/weixin_43982452/article/details/114134096
以上是关于stm32不同开发板之间的程序代码可以相互移植吗?的主要内容,如果未能解决你的问题,请参考以下文章