stm32跟普通的51单片机在程序编写方面有啥区别?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32跟普通的51单片机在程序编写方面有啥区别?相关的知识,希望对你有一定的参考价值。
1、库函数不同。由ST厂商推出的STM32系列单片机,ST厂商给了丰富的函数库,可以直接使用库函数,所以比起普通的51单片机在程序编写方面要更加的省时。
2、运行速度不同。普通的51单片机运行速度较慢,特别是双数据指针,而STM32系列单片机最高工作频率可达72MHz。
3、便利程度不同。51单片机的任何器件只需要配置寄存器打开就可以进行编程,而STM32系列单片机则需要先打开对应的时钟,包括开启后打开外部时钟(晶振)才开始工作。
4、资源不同。STM32的内部资源(寄存器和外设功能)较普通的51单片机都要多,基本上接近于计算机的CPU了,所以在程序编写上能有更多的选择。
5、编程语言选择不同。STM32基本不会选择汇编语言了,因为工程量巨大,寄存器太多了,位数也多,而51单片机则多使用汇编语言。至于C语言编程方面的区别就不大了。
参考资料来源:百度百科-stm32
参考资料来源:百度百科-51单片机
参考技术A stm32和51单片机相比,代码效率高(32位包含信息量大,多数指令一个字节搞定)、执行速度快(72MHz系统时钟不是盖的)、功能强大(外设丰富、管脚多、管脚功能可重映射),优点多多。编程的区别,stm32基本别比划汇编了,能把脑袋搞大大滴,寄存器太多了,位数也多,我一直搞51汇编也放弃了。C语言编程区别就不大了,况且stm32在国内技术支持很到位,资料丰富(关键是不但有E文,中文资料翻译的也多),还有完整的库函数支持,从51转过去没太大困难。有51相似电路的程序,移植的话好多都不用改的,只是针对寄存器、IO口、中断等的修改,软件流程、控制逻辑基本不用改。说了一大堆,不是说stm32有多好学,还是有点难度,但比起它的优越来,付出是值得的。希望对你有所帮助。 参考技术B 简单的说就是:51一般直接操作寄存器,STM32都采用库函数开发(除非特别需要,一般用户不会直接去操作寄存器)。具体一点可以分为下面几个方面:
1、51单片机一般资源较少,寄存器不多,所以程序设计都采用直接操作寄存器的方式。而STM32通常寄存器有数百甚至上千个,难于记忆,因此官网会提供库函数,用户无需记忆寄存器直接调用库函数即可完成相关功能的配置。
2、51单片机一般用于功能较为简单的应用,软件框架较为简洁,一般不涉及复杂的任务管理,不需要专门的操作系统。STM32一般用于较为复杂的应用,功能较多,软硬件复杂度提高,所以都会采用嵌入式操作系统,比如μCOS、ucLinux等。
3、51单片机中断系统比较简单,没有也不需要额外的中断管理模块。STM32有专门的中断管理模块(NVIC),所有中断都需要对应的NVIC配置。
4、传统51单片机一般只有一个主时钟,最多再加一个看门狗时钟,管理较为简单。STM32各外围设备都有自己的时钟源,且各外围设备的时钟都有独立的开关,应用时需要特别注意时钟管理。比如对于端口操作,传统51直接操作即可,而STM32则必须先开启对应端口的时钟。
另外,51也有增强型的,对于增强型的51内核的单片机,其外围设备要比传统51复杂的多,比如会有触摸、USB等功能,这些芯片厂商也会为用户提供相应的库函数的。 参考技术C stm32 是后来出现的升级版单片机 性能更强 资源更多 功耗更低,如果是最原始的 看芯片手册寄存器 编程那么没差别,只是stm32的 芯片寄存器比51多十几倍,因为功能多 寄存器当然就多, 但是 st公司也想到这个问题了,所以 stm32 意法半导体 公司有官方的 HAL 库,这个库封装了大量底层的 寄存器操作,吧一系列操作封装为一个个 的 接口函数, 编程直接调用库函数就很简单你,比如你 开启串口 如果用寄存器编程你要一步一步 设置每个关于串口的寄存器,设置时钟等等,估计需要一百多行代码,但是 库函数就调用两个函数就行了 一个 初始化函数 一个设置使能函数就完事了, 两行 最多三时行 对新手很友好,以为串口这么简单 那ing个函数就可以串口通信了。其实是 HAL 库函数 封装了一系列的 串口寄存器操作 参考技术D 优点如下:
1、STM32属于arm内核的一个版本,比传统的51单片机高级多了,有很多资源是51不具备的,如usb控制器。而且已经废除了机器周期什么的,速度不是51能比的。
2、STM32单片机程序都是模块化的,接口相对简单些,因为它自身带好多功能,工作速度也快。而51的自身功能少,需要外围元件多,要求对电子熟悉。
3、STM32互连型系列产品强化了音频性能,采用一个先进的锁相环机制,实现音频级别的I2S通信。结合USB主机或从机功能,STM32可以从外部存储器(U盘或MP3播放器)读取、解码和输出音频信号。
4、 STM32 的运算速度大约是51单片机的几十倍吧,而且外围接口功能比51强大太多。
STM32是基于ARM® Cortex® M 处理器内核的 32位闪存微控制器,为MCU用户开辟了一个全新的自由开发空间,并提供了各种易于上手的软硬件辅助工具。S
TM32 MCU融高性能、实时性、数字信号处理、低功耗、低电压于一身,同时保持高集成度和开发简易的特点。业内最强大的产品阵容,基于工业标准的处理器,大量的软硬件开发工具,让STM32单片机成为各类中小项目和完整平台解决方案的理想选择。按内核架构分为不同产品系列。
STM32F103微控制器不同类型 的定时器有啥区别?
参考技术APSC 就是预分频器(TIMx_PSC);72M就是系统的频率;STM32 高级定时器PWM的输出 一路带死区时间的互补PWM的波形图 STM32F103VC这款单片机一共有2个高级定时器TIM
以上是关于stm32跟普通的51单片机在程序编写方面有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章