单片机是一种可编程的器件,现在所见到的电子产品中几乎都是以单片机为核心的,根据不同的功能需求,搭建不同的电路,从8位的单片机到32位的单片机,甚至比较高大上的ARM和DSP都可以看成是高级一点的单片机。

单片机是一种工具,由于可编程,所以大大简化了设计电路的复杂程度,软件可以很轻松的完成复杂的逻辑,所以单片机在电子产品中处处可见。对于8位单片机而言,其典型的代表就是51单片机,由于51单片机资料众多,大学里也开设了51单片机的课程,所以很多初学者都把51单片机作为入门的首选。

forum.jpg

电路设计

但实际情况是,很多公司都选用STM8、STM32、AVR、MSP430、PIC系列的单片机去设计产品,而很少选用51单片机,原因是上述单片机功能更为强大、片上资源更为丰富,而且价格也不是很贵。所以很多朋友想问,会51单片机,再去学习STM32等功能更强大的单片机,该怎么过度?

forum.jpg

51单片机开发板

答案是很容易过度。

单片机是一门工具,不同的单片机都是相通的,学会一款型号,可以很快的入手其他型号,单片机一通百通,做好产品才是最终的目的。51单片机到STM32的过度,不困难,仅体现在单片机寄存器的配置上,下面分几个方面进行说明。

1.从外围电路层面的过度

在产品设计中,单片机往往是核心,产品的不同功能需要不同的外设电路去支撑,同一外设电路不会因为单片机的更换而发生颠覆性的改动,所在外设电路这个层面上,不同平台的单片机其外设电路基本一致,只需要考虑GPIO口的复用功能即可。STM32单片机的片上资源更加丰富,使用合适的片上资源和GPIO端口甚至可以简化电路的设计

forum.jpg

小米扫地机器人中的STM32单片机

2.从寄存器层面的过度

STM32单片机是32位的,51单片机是8位,STM32单片机片上资源丰富,功能强大,相应的其寄存器也就越多。但是同样的功能其区别不大,仅仅是寄存器的名称和配置方法不同。所以从51单片机过度过来后,要熟悉一下STM32单片机的寄存器和配置方法。

3.从库函数层面的过度

STM32单片机提供了库函数操作,这大大降低了编程的复杂度,官方都把片上功能和相应的寄存器都配置好了,形成了函数,用户只需要调用函数就可以实现片上功能的调用,这在51单片机是没有的。所以,从51单片机过度过来需要了解一下STM32单片机的固件库的使用方法。

forum.jpg

Arduino中的ATMEGA

4.从编程层面的过度

现在基本都用C语言进行编程,唯有区别的还是寄存器的写法,其他语法一致,即便是跨平台移植,也容易操作。所以在这个层面上不存在困难的地方。

forum.jpg

树莓派中的ARM

其实学单片机很容易,在前期学的是心理,只有克服了心理上对单片机的恐惧,才能踏踏实实的学好单片机的功能。万事开头难,想学单片机要尽早入手把开头尽可能提前,才能学好单片机。

综上所述,单片机是相通的,学会一款单片机很容易入手其他型号,很容易过度。