相应的功能是可以用51单片机实现的,但stm32的程序和51单片机是绝对不能通用的,主要原因有三点:第一,STM32是32位,而51是8位,所以程序变量的定义是不一样的;第二,它们的内部功能结构是完全不同,所以程
相应的功能是可以用51单片机实现的,但stm32的程序和51单片机是绝对不能通用的,主要原因有三点:第一,STM32是32位,而51是8位,所以程序变量的定义是不一样的;第二,它们的内部功能结构是完全不同,所以程
相应的功能是可以用51单片机实现的,但stm32的程序和51单片机是不能通用的,主要有三点:
,STM32是32位,而51是8位,所以程序变量的定义是不一样的;
第二,它们的内部功能结构是完全不同,所以程序自然也不通用;
第三,这两种单片机的主频差别很大,如果程序对实时有要求,那么更不能通用了。
STM32和51单片机相比,代stm32码效率高(32位包含信息量大,多数指令一个字节搞定)、执行速度快(72MHz系统时钟不是盖的)、功能强大(设计外设丰富、管毕基于业多、管功能可重映射)。
如果使用汇编则,工程量巨大,寄存器太多,位数也高,操作困难。所以STM32一般使用C语言进行编程。
架构不同:STM32单片机基于ARMCortex-M架构,支持32位指令集和更强的处理能力,而51单片机基于Intel8051架构,只支持8位指令集。
能不同:STM32单片机处理速度更快,运算能力更强,具有更大的存储器容量和更高的时钟频率,能够支持更复杂的应用程序。
而51单片机处理速度较慢,存储能力较小,运算能力有限,适用于一些简单的应用。
外设不同:STM32单片机支持更多的外设接和协议,如USB、CAN、以太网等,能够实现更丰富的功能,而51单片机的外设接和协议相对较少。
51编程里的子程序文件不能直接移植到stm32上。如下:
1、单片机的编程,与通用C语言不完全一样,硬件的依赖很强,任何子程序都可能与使用环境息息相关。
2、文件除了定义变量,函数申明以外,也有对硬件的定义,比如IO定义,寄存器定义等等,这都限制了其使用平台的灵活,增加了移植的难度。
3、至于与硬件无关的一些函数组合成的文件,也不能直接移植,比如延时、显示、通讯等,由于各个单片机的速度不一致,各个平台上程序有stm32所差异,甚至设计差别很大。综上所述,不基于同毕业种类单片机之间程序(包含文件)移植是不能直接的。