stm32跟普通的51单片机在程序编写方面有什么区别?
发布网友
发布时间:2022-04-24 01:42
我来回答
共15个回答
热心网友
时间:2022-04-02 14:54
1、库函数不同。由ST厂商推出的STM32系列单片机,ST厂商给了丰富的函数库,可以直接使用库函数,所以比起普通的51单片机在程序编写方面要更加的省时。
2、运行速度不同。普通的51单片机运行速度较慢,特别是双数据指针,而STM32系列单片机最高工作频率可达72MHz。
3、便利程度不同。51单片机的任何器件只需要配置寄存器打开就可以进行编程,而STM32系列单片机则需要先打开对应的时钟,包括开启后打开外部时钟(晶振)才开始工作。
4、资源不同。STM32的内部资源(寄存器和外设功能)较普通的51单片机都要多,基本上接近于计算机的CPU了,所以在程序编写上能有更多的选择。
5、编程语言选择不同。STM32基本不会选择汇编语言了,因为工程量巨大,寄存器太多了,位数也多,而51单片机则多使用汇编语言。至于C语言编程方面的区别就不大了。
参考资料来源:百度百科-stm32
参考资料来源:百度百科-51单片机
热心网友
时间:2022-04-02 16:12
优点如下:
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单片机成为各类中小项目和完整平台解决方案的理想选择。按内核架构分为不同产品系列。
热心网友
时间:2022-04-02 17:46
简单的说就是:51一般直接操作寄存器,STM32都采用库函数开发(除非特别需要,一般用户不会直接去操作寄存器)。具体一点可以分为下面几个方面:
1、51单片机一般资源较少,寄存器不多,所以程序设计都采用直接操作寄存器的方式。而STM32通常寄存器有数百甚至上千个,难于记忆,因此官网会提供库函数,用户无需记忆寄存器直接调用库函数即可完成相关功能的配置。
2、51单片机一般用于功能较为简单的应用,软件框架较为简洁,一般不涉及复杂的任务管理,不需要专门的操作系统。STM32一般用于较为复杂的应用,功能较多,软硬件复杂度提高,所以都会采用嵌入式操作系统,比如μCOS、ucLinux等。
3、51单片机中断系统比较简单,没有也不需要额外的中断管理模块。STM32有专门的中断管理模块(NVIC),所有中断都需要对应的NVIC配置。
4、传统51单片机一般只有一个主时钟,最多再加一个看门狗时钟,管理较为简单。STM32各外围设备都有自己的时钟源,且各外围设备的时钟都有独立的开关,应用时需要特别注意时钟管理。比如对于端口操作,传统51直接操作即可,而STM32则必须先开启对应端口的时钟。
另外,51也有增强型的,对于增强型的51内核的单片机,其外围设备要比传统51复杂的多,比如会有触摸、USB等功能,这些芯片厂商也会为用户提供相应的库函数的。
热心网友
时间:2022-04-02 19:38
stm32 是后来出现的升级版单片机 性能更强 资源更多 功耗更低,如果是最原始的 看芯片手册寄存器 编程那么没差别,只是stm32的 芯片寄存器比51多十几倍,因为功能多 寄存器当然就多, 但是 st公司也想到这个问题了,所以 stm32 意法半导体 公司有官方的 HAL 库,这个库封装了大量底层的 寄存器操作,吧一系列操作封装为一个个 的 接口函数, 编程直接调用库函数就很简单你,比如你 开启串口 如果用寄存器编程你要一步一步 设置每个关于串口的寄存器,设置时钟等等,估计需要一百多行代码,但是 库函数就调用两个函数就行了 一个 初始化函数 一个设置使能函数就完事了, 两行 最多三时行 对新手很友好,以为串口这么简单 那ing个函数就可以串口通信了。其实是 HAL 库函数 封装了一系列的 串口寄存器操作
热心网友
时间:2022-04-02 21:46
stm32和51单片机相比,代码效率高(32位包含信息量大,多数指令一个字节搞定)、执行速度快(72MHz系统时钟不是盖的)、功能强大(外设丰富、管脚多、管脚功能可重映射),优点多多。编程的区别,stm32基本别比划汇编了,能把脑袋搞大大滴,寄存器太多了,位数也多,我一直搞51汇编也放弃了。C语言编程区别就不大了,况且stm32在国内技术支持很到位,资料丰富(关键是不但有E文,中文资料翻译的也多),还有完整的库函数支持,从51转过去没太大困难。有51相似电路的程序,移植的话好多都不用改的,只是针对寄存器、IO口、中断等的修改,软件流程、控制逻辑基本不用改。
说了一大堆,不是说stm32有多好学,还是有点难度,但比起它的优越来,付出是值得的。希望对你有所帮助。
热心网友
时间:2022-04-03 00:10
用C语言编程,虽然脱离了对Cpu和内存的直接操作,但摆脱不了对特殊功能寄存器的操作,由于51和STM32单片机硬件结构和功能有很大差别,程序的不同主要表现对特殊功能寄存器的操作上。但STM32特殊功能寄存器太多,直接操作特殊功能寄存器难度很大,因此推荐使用库函数的操作方法
热心网友
时间:2022-04-03 02:52
以C进行"操作"时并无明显区别, 使用上并无大变化. 唯单片机核心架构不同, 故其Register控制方式不同, 会有些差异, 多是因为在硬件架构所致.
例如: 中断上的操作比单纯的bit控制, 多上一些复杂度; boot起始位置也具备变化性; IO设置与51的直接输出控制稍有不同, 多了些设置; 其他则需要个别依照所用到的部分, 逐一查阅文件.
热心网友
时间:2022-04-03 05:50
区别主要在于使用的编程软件不同。如果想学习STM32单片机应用,只要有了实验板、下载配置好相关编程软件,实验一个例程就啥都懂了。如果采用寄存器方式编程,倒是可以借鉴51单片机的编程模式,但需要设置的东西非常多,如果采用库函数方式编程,就与51单片机编程方式不同了。
热心网友
时间:2022-04-03 09:04
stm32是32位单片机,诺依曼架构,51是哈佛架构的8位单片机,细微区别多了去了,比如stm32是统一编址,51是ram和rom分开编址,int类型默认的长度不同,stm32默认32位,51默认16位,long类型计算周期差别更大,如果是汇编的话,指令就相差更多了,stm32是ARM4内核,内核寄存器就比51多很多很多,中断向量也是多而复杂,嗯,编不下去了
热心网友
时间:2022-04-03 12:36
32多了很多寄存器,和外设。但是有库函数方便使用,其他没什么太大区别。
常见stm32外设:基本IO、定时器TIM、串口USART、ADC模数转换、DAC数模转换、SPI串行通信、EXIT外部中断、BKP备份数据、RTC闹钟SysTick系统滴答、WDG看门狗(独立+窗口)、DMA传输数据、片内FLASH编程、FSMC读写外部SRAM、外部NorFlash操作等。
而51的资源比较少。
热心网友
时间:2022-04-03 16:24
stm32通过底层写程序的话,跟51区别不大、、无非就是工程量巨大得多……
如果用封装好的stm32编程环境写的话,跟51的共同点好像也就剩下都是c语言或c++了把
热心网友
时间:2022-04-03 20:28
32寄存器比51多非常多,所以通常用库函数开发,也就是STM32封装好的一些库函数。如果跟51一样用寄存器开发,不好入门。不过现在STM32有出了新的开发模式,TM32CubeMX,一种图形软件配置工具,允许使用图形向导生成C初始化代码。
建议你去看看原子的教程,先用起来,不要想着把32全部搞懂才编程,那样很累的。边学边用,边用边学。
热心网友
时间:2022-04-04 00:50
51 比较低级的c吧,全部的函数都要自己写,全部的寄存器都要搞明白,都要自己操作。库函数很少。stm32比较高端了,一般我会用官方出的STM32CubeMX配置端口和寄存器,然后编程的时候,调用官方的HAL库函数,基本上自己不用写底层代码。
热心网友
时间:2022-04-04 05:28
51的比较简单一点,寄存器比较少,编程直接可以操作寄存器,编程方便。
STM32因为内部功能很多,寄存器也多,ST公司为了快速推广STM32单片机,于是做了一个寄存器配置库文件,工程师通过调用STM32的库文件,可以不用了解内部寄存器,直接部署功能即可,比较像纯软件编程。
热心网友
时间:2022-04-04 10:22
51主要是调用寄存器,而32里面的寄存器太多,商家就把它封装成了很多库函数,你只用调用库函数就行了。这是其最大区别。
stm32跟普通的51单片机在程序编写方面有什么区别?
1、库函数不同。由ST厂商推出的STM32系列单片机,ST厂商给了丰富的函数库,可以直接使用库函数,所以比起普通的51单片机在程序编写方面要更加的省时。2、运行速度不同。普通的51单片机运行速度较慢,特别是双数据指针,而STM32系列单片机最高工作频率可达72MHz。3、便利程度不同。51单片机的任何器件只需...
stm32跟普通的51单片机在程序编写方面有什么区别?
2、数据总线宽度不一样,数据总线宽度越宽,处理速度越快。汇编指令集不同,51是mcs51指令集,stm32是arm指令集。指令集内容相似,但是形式上还是有较大差距。51更便宜,性价比更高,懂得人也更多。3、单片机和STM32是两种不同的微控制器,它们在设计、性能、功能等方面有所区别。
51单片机和STM32有什么区别?编程语言也可以用汇编语言吗?
1.数据总线宽度不一样,数据总线宽度越宽,处理速度越快。2.汇编指令集不同,51是mcs51指令集,stm32是arm指令集。指令集内容相似,但是形式上还是有较大差距。3.51更便宜,性价比更高,懂得人也更多。4.仿真环境不一样,仿真器也不一样。5.51没有知识产权问题,专利已经过期了。6.发展节奏不一...
STM32跟51的编程会差很多么
1、STM32寄存器比较多,比如使用一个定时器,STM32要比51多配置很多寄存器,不过ST提供了完善的库函数,调用配置即可。2、如果用C编程,差别不是很大,51代码移植到STM32也不是很麻烦。主要有以下不同:库函数。ST厂家给了丰富的函数库,直接使用库函数,基本就能搞定所有事情。省时省力。速度。STM32主...
stm32单片机和51单片机区别
STM32单片机和51单片机的区别如下:1、处理器内核不同。STM32单片机通常采用ARMCortex-M内核,如Cortex-M3或Cortex-M4,而51单片机则基于Intel8051架构。2、存储容量不同。STM32单片机通常具有更多的片上内存,如几十KB到几百KB的Flash和更多的RAM,处理速度不同。STM32单片机的处理速度通常更快,运算能力...
求大神,想问下stm32和51单片机编程的区别,然后有51相似电路的程序,怎 ...
编程的区别,stm32基本别比划汇编了,能把脑袋搞大大滴,寄存器太多了,位数也多,我一直搞51汇编也放弃了。C语言编程区别就不大了,况且stm32在国内技术支持很到位,资料丰富(关键是不但有E文,中文资料翻译的也多),还有完整的库函数支持,从51转过去没太大困难。有51相似电路的程序,移植的话好多...
STM32跟51的编程会差很多么
ST提供了比较完善的固件库,把STM32的各种寄存器等等东西都用结构体等等组织好了,你只要直接使用,很方便,没有了研究寄存器的繁琐事了。而且官方提供了很多例程,很多东西改动改动就OK了。在编程上,和51还是有差别的。STM32的GPIO比51单片机强大很多倍,51单片机的P0口你可能需要外接上拉电阻,STM32的...
STM32编程跟51有啥区别
STM32寄存器比较多,比如使用一个定时器,STM32要比51多配置很多寄存器,不过ST提供了完善的库函数,调用配置即可。单片机就是集CPU、RAM、ROM、输入输出设备和中断系统处于同一芯片的器件,在个人电脑中,CPU、RAM、ROM、I/O这些都是单独的芯片,这些芯片被安装在一个主板上,这样就构成了PC主板,进而...
STM32编程跟51有啥区别
STM32寄存器比较多,比如使用一个定时器,STM32要比51多配置很多寄存器,不过ST提供了完善的库函数,调用配置即可。单片机就是集CPU、RAM、ROM、输入输出设备和中断系统处于同一芯片的器件,在个人电脑中,CPU、RAM、ROM、I/O这些都是单独的芯片,这些芯片被安装在一个主板上,这样就构成了PC主板,进而...
51单片机和stm32区别有哪里哪个更好
51是入门级单片机,各方面资源都不如stm32,比如说主频、ROM、RAM、IO口、外设资源。3. 开发模式不同 51是直接操作寄存器使用外设,而stm32是直接调用库函数使用外设,相对51开发更加效率。4. 操作系统 51不能跑实时操作系统,而stm32可以跑主流的RTOS。5. 后期维护 51不能升级程序,而stm32可以通过...