微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 业余爱好,学51单片机还是STM32

业余爱好,学51单片机还是STM32

时间:10-02 整理:3721RD 点击:
不是为了工作,我的工作和这个东西没有半毛钱关系,只是爱好而已,
我有C的基础,网上买了个51单片机玩,看了一下LED灯的代码,后来又发挥了一些想象,觉得51不难,以后做个飞行器或者小车什么的应该没问题。学习了一段时间,了解到STM32这东西,强大不是一点点,于是想转玩一下STM32,但对这东西又不是特别了解,想请教大师们一下几个问题:
1-单片机51和STM32在编程上都是用C,没什么太大的区别吧?
2-网上朋友都说51代码短,很少代码就可以完成一个东西,STM32代码量大,需要写大量代码,是这样吗?
3-在对传感器链接的时候,51和STM32在代码上是否一样?
4-有些STM32里面带OS,这个OS是哪个核心?
5-STM32里面,我可以自己编写一个核心做OS吗?
6-这个也是最关键的,我这个阶段,适合直接学习STM32吗?还是先熟悉51再转STM32?

学习STM32,库函数编程,更容易上手,也很实用

QT不是图形界面开发么?与OS有什么联系?

你这是初学者么

初学者

1、虽说都是C,但都不是标准的C,所以语法还是有一点点小区别。
2、说代码短的都是没系统用过STM32的,STM32有官方库,代码看上去可能比较长,但是封装非常好,另外因为51的片子存储普遍比较小,想长也长不了。
3、AD DA这块51和STM32可以说就是寄存器访问这块不同,原理都一样,参考文档很容易实现。
4、任何硬件处理器都不会带OS,自然STM32也未带,OS需要自己选择编译,OS推荐选择RTX。
5、51都可以,STM32必须可以。
6、如果你不是为了工作上需要51,推荐你直接进入学习STM32。

我讲讲一下我的认识吧,希望对你有帮助:
5年前:由于种种原因选择了51
5年前-3年前:51做了几个项目,觉得用来用去没什么突破,没有软件工程的概念
3年前-2年前:stm32做了几个项目发现又陷入和51一样的瓶颈
我觉得MCU软件的学习其实是具体学习-》抽象模板化-》具体应用的过程,在这个过程不要陷入
重复做一件事情的过程。争取做过一件事情就要抽象模板化,这样以后可以快速应用,我有一段
好多时间浪费在初始化,架构选择上面了,现在想想,一个项目最重要的是集成、功能和算法,其它
的都是一些重复性的劳动。希望可以对你有帮助。
当然这只是我当下的认识,水平可能不是很高,希望可以抛砖引玉。

感觉你已经很精通51了

我学习51已经有两年的时间了,也是刚刚接触STM32。两者之间的C语言还是稍有不同的。但是两者时间还是有共同之处的。归根结底,都是对各种寄存器的操作。一般51的外设和存储器是没有STM32丰富的。如果小编想要做四轴飞行器,用51的话可能有点勉强。因为飞行器跟点亮LED和控制电机调速不一样,代码中有大量的控制算法,算法中会使用很多的变量,有变量就会占用内存,有可能最后出现内存不足无法编译的事情。这还不是唯一的问题,还有向运行速度,或者运算速度。有的单片机运算除法时会分配临时变量占用跟多内存。所以单片机的存储是和运算是一个硬伤。除非你编写的代码优化到最小,最精简同时又能满足系统的要求才行。唠叨的有点多。希望对小编你有帮助

如果51熟悉的话,学ARM就简单一些

运用STM32库函数编程很简单的

51最适合初学者学习单片的,不仅编程简单,易于理解,而且单片机内部的配置也不难,易于上手。
相对来说,stm32就比较复杂了,虽然二者都是C编程的,但是,51用到的C知识较少。32大多会常用到指针,结构体,枚举。但是,相对于51来说,stm32能够实现更为复杂的功能,反应速度有够快,做平衡小车和四旋翼不成问题。我还是建议先熟悉51,再学32,毕竟基础很重要嘛!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top