单片机51和stm32编程步骤一样吗?
Posted 无际单片机编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单片机51和stm32编程步骤一样吗?相关的知识,希望对你有一定的参考价值。
我是在10年前自学的单片机。
那个时候主要是学的51单片机入门的,从零基础到靠这个找到工作前后大概花了3-5个月左右,具体多久我忘记了。
当时竞争还没现在这么大,很多新型的单片机也还没出来,所以选择相对集中。
我只学了51芯片,然后做了一个项目,在磕磕碰碰的情况下就找到工作了。
接触第一份工作的时候用的是STC公司的51单片机,做一个读卡器,就是智能楼宇的楼层权限控制板。
做熟了以后老板对我的技术也慢慢认可了,又丢了一些稍微复杂的产品给我做。
老的方案是用NXP的芯片做的,但是NXP的芯片虽然稳定,价格还是贵了一些,后面老工程师推荐用STM32的做。
老板让我先去研究下STM32的芯片,我为了得到老板进一步的认可,自行忍痛在某宝买了一个STM32开发板。
打开开发板例程的那一刻,我懵逼了,这是什么鬼?
以前在用51和NXP单片机开发的时候都是看着芯片手册配置寄存器的方式来开发的,STM32是官方提供了很多库函数,直接调用就能把单片机外设用起来。
刚开始不太习惯,不知道每个库函数的作用,等用熟了之后瞬间感觉NXP一点都不香了。
后面我做任何项目都优先考虑STM32的单片机,用起来太方便了,而且芯片也稳定,不会给你整一些莫名其妙的问题。
后面自己又写了一个程序架构来解决大多数产品的一些痛点,比如说LED特效、多按键多功能检测、队列之类的。
基于这个架构,只要是用STM32开发产品我都如云得水,基本2-3周就完成了产品的代码部分,深得领导的认可。
从目前市面上的单片机来说,主要的编程步骤和开发模式都大同小异,很多芯片也在学习STM32这种模式,即使库没那么完善,都会提供外设的例程。
原因很简单,你只有让别人快速把你芯片用起来,同时保证价格和质量,别人才会考虑用你的芯片。
不管是什么单片机,无非就是2种编程模式:
1.基于寄存器开发,原厂提供例程
2.基于固件库开发
基于寄存器写出来的代码占用空间更小,执行效率更高,缺点是开发周期会长一点。
基于固件库开发占用内存空间更大,执行效率会慢一些,但是移植性好,也稳定,开发周期快挺多。
除了开发模式的区别,51和STM32还有资源和性能上的区别。
当然,拿这两个芯片比资源和性能明显不合适,因为针对的市场不同,51是针对低端产品,比如说小家电这种。
STM32是针对相对高端的产品,比如说无人机、工业控制、智能家居等等。
我看过一些文章,说51单片机已经过时了,这种基本是外行人,或许都没从事过这个行业。
有些产品非常简单,可能就一个按键,一个LED灯,如果你用STM32去做,老板第二天就把你干掉。
实际做产品需要考虑的问题非常多,成本就是占比很大的一块,51单片机成本比STM32低很多。
还有一些建议直接忽略51单片机去学STM32的。
我个人建议的学习路径是,先学51打基础,深入理解单片机的原理,再学习STM32做应用,提升自己的编程水平。
以上是关于单片机51和stm32编程步骤一样吗?的主要内容,如果未能解决你的问题,请参考以下文章