问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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可以通过...

stm32单片机用什么编程 51单片机和stm32区别 stm32单片机程序100例 51单片机程序编写 51单片机程序编写软件 stm32单片机程序 最简单的单片机编程 用keil编写单片机程序 stm32单片机教程
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...罐亲手叠的星星,很贵的洗面奶,含有我常吃的口香糖 ...网页的账号绑定在一起,求代码和主要思路,php的 dw手表的寓意是什么 芳草集茶树平衡调理水品牌介绍 旧电视机做摄像头的显示屏可以存储吗? 字词全解:虽乘奔 "株式会社"中的"株式"翻译成中文是什么意思啊? "株式会社"中的"株式"翻译成中文是什么意思啊? 国缘对开为什么一杯就上头 “野岛株式会社”翻译成日文是什么 51单片机和STM32有什么区别?编程语言也可以用汇编语言吗? 学习STM32一定要用到汇编语言吗?我只会C语言怎么办? stm32输入配置有上拉,下拉,浮空三种模式,分别有什么区别啊?用的时候可以随便选择吗? 想把VC++6.0后缀cpp文件的程序移植到stm32芯片里面去,需要注意哪些地方? STM32单片机如何处理QT上位机串口中发过来的数据? 银行卡异常了,还可以接受转账吗? 工商银行异常别人可以转钱进来吗? 银行卡状态异常可以收到钱吗 银行卡状态异常可以收到钱吗? 光大银行交易异常请前往网点核实身份能否取款 银行卡显示异常怎么把钱取出来? 手机银行出现异常站停服务 到自动取款机能取出来钱吗? 银行卡异常钱能取出来吗? 银行卡异常还可以去自动取款机取现金吗 兴业银行状态异常可以到柜台取钱吗? 银行卡异常可以去atm机取钱吗? 银行卡异常怎么把里面的钱取出来 银行卡异常可以取钱吗 银行卡异常里面的钱还能取吗? 电表三相和两相的区别 爱茉莉柔颜滋养水好用吗? 韩国爱茉莉miseenscene护发精油怎么样 爱茉莉的洗发水好用吗 爱茉莉黑吕白吕的区别 爱茉莉发油的保质期是多久 什么是高品质? 高品质和标准品质有什么区别?怎么听上去没什么区别? 制作高品质标识标牌有哪些要求? 品质标语 品质标语怎么写 高品质产品的标志要通过认证吗? 为什么我QQ音乐播放器不显示高品质音乐标志 QQ音乐,高品质 和标准品质 有什么区别? 歌曲高品质和标准有什么区别 绿钻高品质和标准品质有什么区别 高品质古树茶的标准是什么? 真标高品质版是什么意思 如何建立品质标准 标准音乐品质和高品质的区别? 下载歌曲时出现的高品质和标准品质是什么意思