RoboMaster

标题: 【分享帖】从STM32开始的RoboMaster生活:入门篇 [打印本页]

作者: Alchemic Ronin    时间: 2020-3-12 10:44
标题: 【分享帖】从STM32开始的RoboMaster生活:入门篇
本文已经同步发布于作者部署的私人博客
为了更好的排版和观看体验
可以移步到 从STM32开始的RoboMaster生活:入门篇

从STM32开始的RoboMaster生活:入门篇

1.0 STM32是什么
1.1 定义

                               
登录/注册后可看帖子
ST: SGS-Thomson 法意半导体
M: Microelectronics 微控制器 微处理器
32: 32位
–> STM32: 法意半导体所设计制造的32位微控制器系列产品
1.2 背景
精简指令集 RISC: Reduce Instruction Set Computer
复杂指令集 CISC :Complex Instruction Set Computer

                               
登录/注册后可看帖子
精简指令集并非简单的比复杂指令集简单,而是其高效快速便宜,强调效率和价格,所以,常见的嵌入式设备,手机等等均为精简指令集。接下来的ARM架构就是基于精简指令集的。

                               
登录/注册后可看帖子
而复杂指令集,强调指令的多样性和复杂性,常见于电脑和大型服务器,以往的Intel英特尔的x86 (IA-32) ,新起的x86-64 (AMD64) 均为复杂指令集。
ARM:  Advanced RISC Machines 高级精简指令集机器
ARM处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器。但实际上,真正的ARM是一个32位处理器框架,而Acorn自己从不生产处理器,而是搞处理器框架授权的,怎么实现其架构完全取决于客户自己,所以很多时候同为ARM架构的厂家互相之间的代码却不能直接套用。STM就是Acorn授权客户之一,所以STM大部分产品都是基于ARM架构的。
ARM处理器的三大特点是:耗电少功能强,16位/32位双指令集,和合作伙伴众多(所有手机都是ARM架构)。
目前ARM分为三大系列:Cortex-A,Cortex-R,Cortex-M
Cortex-A (Application): 适用于应用领域,支持 ARM和Thumb指令集,并支持虚拟地址和内存管
Cortex-R (Real-Time): 适用于高实时性领域,支持 ARM和Thumb指令集,只支持物理地址,并支持内存管理。
Cortex-M (eMbedded): 适用于微处理器领域,只支持Thumb指令集。
为我们接下来要讲的就是STM32系列就是基于Cortex-M架构的
1.3 系列

                               
登录/注册后可看帖子
整个STM家族是非常庞大而繁杂的,当然,这里要是全部讨论比较一番,估计已经可以出几本书了www,所以,我们主要分析一下STM32系列下的MCU微控制器(左边的MPU才是微处理器)

                               
登录/注册后可看帖子

                               
登录/注册后可看帖子
我来简单概括一下,一共有4个分支
如果各位需要购入,请务必详细阅读每个微控制器的详细数据,再根据项目要求来谨慎购买。推荐阅读:官方选材手册
2.0 为什么选择STM32,抛弃Arduino?
这是个艰难的选择,我们有无数的理由选择Arduino,放弃STM32,比如Arduino简单易学开发迅速支持强大BUG少,STM32复杂难懂开发缓慢支持受限BUG多,但是很多时候我们不得不承认,现实就是,几乎没有真的用Arduino做产品开发的,而最流行的专业的嵌入式开发,STM32就是绕不开的一条路。说白了:Arduino就是玩具,给兴趣爱好者玩的;STM32才是真正的嵌入式,远远比Arduino强大几个量级,是开发电子产品的必备技能
下面我们再详细的列举一下抛弃Arduino,选择STM32的理由
3.0 STM32上手难度如何?
这部分我就直说了吧,难,非常难,资料少不说,数不尽的坑一定要自己全部踩过一遍才能熟悉开发环境。光是配置开发环境就花了我2周,就算要想做个最简单的LED流水灯,点亮个LED,也是要深入理解STM32的各种底层,芯片引脚设置才行的,这也是新手最劝退的地方,你能想象,至少要枯燥无聊地花一周阅读300页的手册才能点亮一个简单的LED吗?是不是有点兴致全无?但是,一但越过这个门槛,你就会打开STM32的大门,真正进入嵌入式的殿堂,深入地理解计算机内部的任何细节,无论软件还是硬件上的,你将会感觉自己身处一片智慧的汪洋什么都不懂,但同时又即将成为这片汪洋的新君主,感觉能通过计算机做到任何事情!!!
4.0 RoboMaster是什么?
言归正题,肯定很多人读到这里,会疑惑,“这该死的家伙搞了这么一堆东西,先推销STM32,又使劲劝退,结果半天了连RoboMaster都没解释一下”。别慌,诸位客官,这不正要讲嘛
全国大学生机器人大赛RoboMaster 机甲大师赛是由共青团中央、全国学联、深圳市人民政府联合主办,DJI 大疆创新发起并承办……
哦我的天哪,无聊死了,我们还是直接一点,看看实际的比赛
http://player.bilibili.com/player.html?aid=76130870&cid=130230429&page=1
5.0 RoboMaster仓库 & 教程安排

                               
登录/注册后可看帖子
UIUC RoboMaster 校队仓库Illini RoboMaster
我首先会写个入门篇,介绍一下STM32和RoboMaster(就是本片内容),然后进入进阶篇,详细说明STM32所有的外设,并给出代码和配置,最后在比赛篇带着各位逐行解析上面仓库里面的所有代码,并说明实际硬件的一些配置和使用事项,比赛篇我会从iRM_Embedded_2018开始讲起,本教程暂且不谈AI图像处理和机械设计,专注于STM32的入门事宜。
6.0 你所需要的知识储备
在阅读后面教程前,需要一定的基础和技能,如果在一下列表中有你不会或者没有达到要求标准的知识,请按照下文对应的链接来阅读对应资料的对应章节,并练习直至达到全部要求标准,请务必不要嫌麻烦。以下书籍作者皆研读过,所以不用担心浪费时间,勾画的都是必要内容。
7.0 你所需要的硬件8.0 你所需要的软件
关于如何配置开发环境,请善用(?)百度娘和谷歌姬,这部分因系统而异,因板子而异,甚至因人而异,所以作者便不再熬述~
9.0 后话
接下来我会写进阶篇 I,是关于基本的GPIO设置与代码,随后其他进阶篇很快就会出,将介绍各种外设和其使用方法,诸位将很快在教程的指引下完成你的第一个STM32程序,怎么样,想想是不是有些小激动呢?~~
10.0 UIUC Open Lab的冰山一脚(试图吸引点新人

                               
登录/注册后可看帖子

                               
登录/注册后可看帖子

                               
登录/注册后可看帖子

本文已经同步发布于作者部署的私人博客
为了更好的排版和观看体验
可以移步到 从STM32开始的RoboMaster生活:入门篇


作者: 徐牛_    时间: 2020-3-12 11:27
顶顶顶,继续
作者: 沧之澜    时间: 2020-3-13 10:52
从入门到放弃?
作者: 木昜啊    时间: 2020-3-21 14:36
难顶啊
作者: 倔强小R    时间: 2020-3-25 09:38
从入门到入土
作者: mulina    时间: 2020-3-29 13:15
当我熟悉51,准备拿下32的时候,我发现我天真了
作者: maao19    时间: 2020-4-15 22:43
新人良药
作者: Lxctdjy    时间: 2020-4-26 11:54
顶顶顶,支持大佬
作者: 2648488817qq.co    时间: 2020-4-29 22:02
秃头的开始
作者: aujincheng    时间: 2020-6-2 15:27
为什么不建议用stm32 nucleo 而是建议官方的?
作者: Alchemic Ronin    时间: 2020-6-9 19:40
aujincheng 发表于 2020-6-2 15:27
为什么不建议用stm32 nucleo 而是建议官方的?

Nucleo 就是 ST 官方出的
作者: aujincheng    时间: 2020-6-18 10:45
Alchemic Ronin 发表于 2020-6-9 19:40
Nucleo 就是 ST 官方出的

为什么不建议用stm32 nucleo 而是建议 使用 >>> RoboMaster专用的开发板
作者: Alchemic Ronin    时间: 2020-6-22 21:23
aujincheng 发表于 2020-6-18 10:45
为什么不建议用stm32 nucleo 而是建议 使用 >>> RoboMaster专用的开发板

当然都行,但既然都是来参加RM比赛的,用RM的开发板当然更合理一些,主要是Nucleo和RM开发板虽然都是STM32,但是引脚不同
作者: aujincheng    时间: 2020-6-30 12:41
Alchemic Ronin 发表于 2020-6-22 21:23
当然都行,但既然都是来参加RM比赛的,用RM的开发板当然更合理一些,主要是Nucleo和RM开发板虽然都是STM3 ...

好的 谢谢
作者: 无敌小饼干    时间: 2023-3-9 11:07
太难了啊
作者: 青鸟    时间: 2023-4-30 16:40
好厉害啊加油——————————-





欢迎光临 RoboMaster (https://bbs.robomaster.com/) Powered by Discuz! X3.2