在项目开发过程中,我们经常会遇到需要单片机选型,所以我们常常会根据项目功能需求来选择合适的单片机品牌和型号。常见的51内核单片机和STM32单片机也会是我们主要考虑的型号。
STM32与51单片机的参数差异 内核不一样,STM32系列目前有很多的内核版本,有Cortex-M1/M4/M7内核,常用的单片机型号STM32F1系列,为Cortex-M3内核,而51单片机其实是指与intel8051内核结构一致的单片机,是其内核结构和时钟树结构相差极大。STM32系列的工作主频也比51单片机的外设不一样,我们常用的STM32F103rct6这个型号,此型号有256K的FLASH,作为程序存储空间,也可以作为单片机参数存储空间,断电不丢失, 还有5个串口,SPI接口,多路定时器和PWM输出控制引脚。其功能比51单片机强大。
单片机最小系统不一样,常用封装不一样,51单片机常见DIP40,但STM32常见LQFP封装,STM32F103rct6为LQFP64,能用的引脚更多。
STM32与51单片机软件开发难度差异
STM32使用寄存器比51单片机要多很多,其配置比51复杂,而且中断逻辑,时钟配置使能控制等很多概念都是51单片机中所没有的,再加上stm32很多功能如USB,FSMC。等等功能,其功能更加强大,虽然官方提供了开发固件库和相关开发辅助工具,但很多时候,遇到bug调试难度也加大了很多。
stm32固件库很多实用结构体和指针变量,很多在51单片机开发过程不太注重结构体与指针的使用,那么在STM32开发过程中,就难以理解其固件库的运用逻辑。
STM32与51单片机的性价比差异
STM32比51处理速度快,外设功能丰富强大,所以价格普遍比51单片机偏贵,在项目选型过程中,需要根据项目功能需求,选择合适的单片机,如果是51单片机能用,那么考虑项目成本,肯定是不能选择STM32,如果51单片机不能用,即使再便宜,也用不了。
总之, 作为单片机开发工程师,需要能够进行一定的器件选型能力,这个也是必备的专业技能。
首先如果同一个项目可以用51和STM32同时开发,就不建议使用STM32了,51成本更低。
STM32和51单片机不同点有很多:
1.开发方式不同
51单片机一般是直接操作寄存器,STM32主要操作库函数编程
2.系统资源不同
一般而言STM32资源要比51单片机更多
3.开发环境可能不同
51和STM32一般来讲都可以在Keil下开发,但STM32有更多中选择,可以在Linux下面开发,windows Esplise下开发,甚至直接用VSCode + 插件方式开发。
4.操作系统区别
一般而言,51单片机不支持操作系统,STM32支持各种主流操作系统,STM32开发起来更容易,可以很方便的利用系统实现各种场景下的应用,51单片机由于没有操作系统,开发起来有一定阻碍,甚至有时候必须要做出部分功能的牺牲才能达到整体功能的和谐运行。
5.后期维护方式可能不同
STM32资源足够多,可以写一个bootloader程序来完成之后的系统升级工作,不需要拆机就可以完成固件的升级,而51单片机则不可以。
|