单片机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编程步骤一样吗?的主要内容,如果未能解决你的问题,请参考以下文章

STM32单片用什么编程?如何学习STM32单片机开发

stm32最小系统得引脚都一样吗?

mixly可以编写stm32单片机吗

32单片机编程简单吗?单片机程序与桌面编程哪个难?

stm32跟普通的51单片机在程序编写方面有啥区别?

STM32F407单片机UART串口gpio口复用功能配置问题