路飞船长的电子设计宝藏7月26日
原来的文章只介绍了51单片机的学习路线(当时STM32刚刚出现),感觉有点落后于目前流行的STM32等高端单片机,所以作者更新了这篇文章。
1、51和STM32的区别。
STM32比51有更高的频率、更多的RAM、更多的FLASH,所以STM32可以处理更多。
STM32的外设比51多,包括CAN、USB、FSMC,这样可以节省芯片。
STM32有固件库,写代码不用看手册,也不用看寄存器。网上也有很多套路。
我们应该从51转向STM32时代,因为STM32凭借其诸多优点已经成为流行的主流微控制器。
2. 核心与外围设备。
外设是GPIO、ADC、IIC、UART 和SPI 等外部设备。
内核是内部核心,包括ALU算术逻辑单元、流水线和指令集。
51核心仍称为51。 STM32内核包括Cortex M0、M0+、M3、M4、M7等。
STM32有多核,ARM Cortex系列芯片分为高端A系列、中端R系列、低端M系列。
3.如何从51迁移到STM32?
51有很多缺点,但成本低仍然是一个优点。 OTP(一次性编程)价格低至0.3毛,适用于多种家用电器。
因此,不能基于纯粹的技术崇拜就认为51毫无用处。然而,你将需要掌握更多的技术来适应不同的工作环境。
51到STM32,所以一旦你掌握了基本的定时器和串口,你就可以切换到STM32。
有些学校先教汇编,再教C,但我认为先学C,再学汇编更好。正如Linus 所说,你必须先学会如何使用它。
1、首先掌握C语言的语法。
微控制器中使用的C语言称为C51。除了标准C 语法之外,C51 还包含一些专门针对微控制器的附加语法。现在你可以安装VS了(停止使用旧的VC6 IDE)。你要做的就是找一本语法书,抄下代码,照抄写法,做课后练习,不用看书。在流程控制中(if、for、while、(包括开关等) 。您还需要学习指针和结构。我们建议观看视频《边用边学C语言》。
2. 稍微练习一下。
接下来,购买单片机开发板,制作储物柜、光立方、密码锁、超声波测距、红外遥控器等(论坛上可以找到很多新奇有趣的小玩意)。当然,您不必每一项都做。您还可以选择不同的运行来使升级更快。您还可以查看推荐视频《十天学会单片机》 以及开发板附带的视频和教育材料《单片机c语言程序设计实训100例——基于8051+proteus仿真》。做好几件事,不要在这个阶段停留太久,重点掌握定时器和串口。
3. 养成良好的编码习惯。
《十天学会单片机》 有很多糟糕的代码,但你不可能一下子就写出很棒的代码。建议先看郭大侠的视频,有一个过渡期。那么如何编写高效且可读的代码呢?这里只提一件事。避免在变量和函数名称中使用拼音(int shi、fen、miao 等)。这些应该用英文命名,因为它们是不好的编码实践。推荐的做法是参考高手写的代码。你可以在百度文库和各大电子论坛找到很多很棒的代码。我们还推荐《从单片机初学者迈向单片机工程师》、《MISRA C标准工程师笔记》、《C语言编程规范》、《C51代码风格》。
4.了解汇编语言。
微控制器工程师也称为固件工程师。之所以叫固件,是因为他们写的代码都是和寄存器打交道的,而寄存器可以直接控制硬件,所以软件在最底层,不用经常改。这部分需要简要了解数字和模拟电子学的基础知识,因此大学首先教授数字和模拟电子学,然后是微控制器。如果您尝试使用汇编语言来处理微控制器,您会发现编写的代码可读性较差、可移植性较差且难以维护。然而,该组件可以让您清楚地了解微控制器的工作原理。了解C语言指针的原理。但是,您不需要详细了解汇编语言。例如,了解确切的延迟就足够了。
1、编译、编辑、版本控制。
STM32固件库函数和变量名都很长,不可能一一敲出来,需要借助高级工具。
1. 编译器。继续使用keil来编译你的代码。
2.编辑。编辑器是编写代码的工具。 Keil的代码补全和提示很差,所以你必须使用其他工具来编写你的代码。这需要打开两个软件。一种用于编写代码,一种用于编译代码。这有点乏味,但与输入一长串函数名称相比并不算什么。推荐使用VS和Eclipse(C/C++版本)。我们不建议使用Source Insight(其功能不够强大)。
3.版本控制器。这用于备份您的代码。不要再使用压缩包了。推荐git 教程。
2.了解固件库。
完成前面步骤的准备后,首先购买一块带模拟器的STM32开发板,价格248元。这里下载的代码与使用串口下载的51代码不同。您需要使用另一个模拟器。
这里的模拟器有ST Link、Ulink等。不推荐使用J 型链接。仿真器接口包括JTAG 和SWD。我们建议使用SWD 连接这三根线。
还可以观看推荐教材《STM32开发指南库函数教程》以及开发板自带的视频。这里需要掌握ADC、RTC、CAN、IIC、SPI、UART、DMA、SDIO、IAP等STM32外设。
3.自制PCB。
如果数字和模拟电子学的基础知识不够,你应该先补充一些理论。接下来,下载Altium Designer6.9(参见《Altium Designer视频教程》)。根据您感兴趣的小工具创建PCB。图纸完成后,先送到小组指导,然后送到卡里索校对。其他的食材我都是在淘宝上买的,因为很便宜。主要学习可以自学的基本技能,如焊接、维修、电路图、电路板等。
4. 微控制器之外的世界。
即使您现在可以与微控制器交互,它也只是打开了一个小窗口。您可以选择下面的一个方向,但您也可以在工作中使用多个方向的知识。尽可能多地学习。
1.嵌入式操作系统。不建议使用51 微控制器来运行您的系统。 STM32可以运行ucos II、ucos III、免费RTOS、coos、RT-Thread、RTX等。我们推荐学习任哲的教材《嵌入式实时操作系统ucosII原理及应用》。一旦掌握了一种嵌入式操作系统,其他的一切都可以触类旁通。移植系统时使用程序集。我们建议学习免费的RTOS 或RT-Thread。
2. 触摸ucgui/STemwin、GFX。 STM32可以通过FSMC接口驱动TFT液晶屏。您可以在这里学习STemwin。其实你也可以学习Touch GFX。
14、单片机和微型计算机原理总结。
《微控制器原理》描述了如何在PC上组装x86架构,这与组装51微控制器不同。不要读错书。
51单片机组装和STM32组装也不同。 51采用CISC架构,而STM32采用RISC架构。
15、STM32以外的高端单片机品牌。
其中包括NXP的LPC、Nuvoton、GD32(高度可模仿的STM32)、Infineon、TI的MSP430、Microchip的PIC、Renesas、ADI、Maxim和Samsung。
16.其他单片机品牌。
和泰、辉芒、松瀚、海尔(东软)、STC、义隆、鑫茂、众鹰、ABOV(现代)、Megawin(圣泉)、盛思威、HOLTEK(盛阳)、久奇、友华、岭东威。
————————————————
版权声明:本文为CSDN博主“Captain-Leader”原创文章,经授权转载。
版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。