单片机&嵌入式学习入门指南
导言
虽然目前市面上各种国产、进口芯片种类繁多,但是针对新手入门学习,还是推荐STC51系列或者STM32系列的芯片进行学习。同时,这两者的开发也是有很大区别的。或者可以这么说,目前市面上的MCU芯片主要就两个风格,一个STC风格,一个STM32风格(HAL)。而STM32风格也算是目前最主流的MCU开发风格。
那么就这两种芯片该如何选择呢?就上手难度来说,STC51是明显低于STM32的,但与此同时,STC51的性能也是远远低于STM32的。具体选择哪种芯片作为学习的目标就要看各位目标了。是说单单做完这个科创启航竞赛就行了呢还是说打算打打电子设计大赛 、嵌入式大赛等等其它比赛了,如果有打其它比赛的打算或者自己做点小东西,那么STM32绝对是最佳选择。总而言之,在时间充足的情况下笔者还是主推STM32的。
STC51开发特点
STC51的开发是基于寄存器的开发,这是一个十分偏向底层的开发方式。虽然说偏向底层,但其难度是最低的,因为涉及到的C语言语法少。举个例子,比如我想点亮一个LED灯,这个灯的阴极接地,阳极接到了STC51的一个GPIO[^ 1]口。如果我想让GPIO输出高电平来点亮LED灯,那么只需要用C语言向指定地址写入1即可。而如果我想读取某个GPIO的电压,直接读取对应地址的值即可。STC51的开发主要也就是用到上面的操作来控制GPIO TIM 等外设。
[^ 1]: GPIO(通用输入输出,General Purpose Input/Output)是嵌入式系统中一种常见的引脚类型,用于实现CPU与外部设备之间的通信。GPIO引脚可以通过软件配置为输入或输出模式,从而实现数据的输入或输出功能。具体来说就是你可以控制这个物理接口输出0V(低电平)或者3.3V(高电平)(电压大小视情况而定)的电压
STM32开发特点
STM32 的开发主要是基于函数进行的,比如上面的设置GPIO电压,在STM32中就是
1 | HAL_GPIO_Write(GPIOC, GPIO_PIN_15, GPIO_PIN_SET); |
这样的模式。虽然说归根结底还是写寄存器,但是写寄存器的步骤都被抽象成了具有具体名称的函数,简介直观。
那么函数的抽象主要是依赖于库,SMT32目前的库有HAL库、标准库、LL库。笔者只推荐大家学习HAL库!其一是其逻辑严谨清晰,其二是其适配广。目前标准库在STM32的H7等系列上是完全没有的!也就是学了也没法用。
总结
- 有时间有能力尽量学习STM32
- STM32使用HAL库进行开发,不要使用标准库
如果也想学学STC51?没关系,后面的MCU原理课(无论电气电子)会详细学习的!!!



![[RK3588]初识随笔](https://www.rock-chips.com/uploads/allimg/220926/1-2209261629510.png)