51单片机和stm32区别有哪里?哪个更好?

stm32和51单片机的区别,先学51还是先学stm32?
一、51和stm32单片机的区别

51单片机和stm32区别有哪里?哪个更好?

文章插图
51和stm32的区别还是挺大的,51是属于低端单片机,stm32算是中高端单片机了,他们面向的产品也不一样,真要区别,一篇文章远远不够 。
这里只说对我们开发息息相关的 。
1. 内核
51是Intel8051的内核架构,而STM32有Cortex-M1/M2/M3/M4/M7这么多内核版本,像我们常用的STM32F1系列就是Cortex-M3的内核 。
2. 资源
51是入门级单片机,各方面资源都不如stm32,比如说主频、ROM、RAM、IO口、外设资源 。
3. 开发模式不同
51是直接操作寄存器使用外设,而stm32是直接调用库函数使用外设,相对51开发更加效率 。
4. 操作系统
51不能跑实时操作系统,而stm32可以跑主流的RTOS 。

51单片机和stm32区别有哪里?哪个更好?

文章插图
5. 后期维护
51不能升级程序,而stm32可以通过编写bootloader程序来完成后续产品程序升级,如果软件有bug,不需要客户退回,直接升级程序解决 。
6. 开发环境
【51单片机和stm32区别有哪里?哪个更好?】51和stm32虽然都可以用keil开发,但是版本不同,而stm32的开发环境也比较多元化,主流的就是keil或者iar 。
7. 程序架构
如果是资源很紧张的51单片机,产品开发时一般以功能实现为主,不会考虑程序架构可扩展性和可移植性,因为ROM和RAM不允许 。
8. 难易度
Stm32虽然是通过调库就能把芯片外设用起来,但是开发难度会比51难很多,因为stm32的资源丰富,涉及的技术点就多 。
所以,两者厂家对芯片的定位不同,51除了偏向低端产品以外,开发也更接近底层 。
而stm32厂家的定位是帮助工程师快速做出产品 。
基于这些特点,如果你刚开始就直接去stm32的话,会有很多基础知识的缺失 。
导致你学起来比较吃力,很多东西也掌握不透,在学习的过程中会很痛苦,觉得这玩意太难了 。
一般有51基础,并且做过一些小项目,学习stm32会快很多 。
也不用系统地把所有外设都学习一遍,最好的方法就是通过项目去学习,项目用到什么外设,就相应去看这个外设怎么开起来 。
基本上一个项目下来,你就能掌握stm32了,我当初就是这样学会stm32的,我也没去看任何视频教程 。
相对教程,我更喜欢找例程,这样更节约时间,有基础的话通过例程你很快就能猜出来改哪些地方代码会有什么样的结果 。
其实归根到底就是把它当做一个工具熟悉而已 。

    推荐阅读