RoboMaster电控 STM32开发环境搭建

news/2025/3/9 22:33:33/文章来源:https://www.cnblogs.com/yichen2022/p/18647521

CPU工作频率可以达到168MHz,基本可以满足比赛中所有的控制需求。

stm32的主流开发方式包括寄存器开发,标准库开发,HAL库(LL库)开发。

寄存器开发即直接控制32的寄存器,工程运行效率高,但是开发难度大,可读性与可移植性差;

标准库开发即使用ST官方开源的一套标准固件库进行开发,这套固件库对一系列寄存器操作进行了封装,降低了开发难度,提高了可读性和可移植性,但目前ST已经将推广的重心从标准库转移到了HAL库(LL库)上,虽然还是有许多工程在使用标准库进行开发,但无论是软件还是文档的更新速度,标准库都已经无法和后者比拟了;

HAL库(LL库)开发是ST开源的又一套新的库,与标准固件库的最大区别是,HAL库(LL库)支持ST开发的一款图形化工程配置软件STM32CubeMX,使用该软件可以大大提升开发效率和工程移植性,尽管由于HAL库采用了更加复杂的封装,降低了工程的运行效率,但是由于stm32本身强大的性能,中小型的工程依然能够流畅的运行。目前越来越多的用户开始使用HAL库(LL库)进行开发;

本系列教程采用的开发方式为HAL库(LL库)开发(以下简称HAL库开发),同时也是Robomaster中许多队伍选择的开发方式。

HAL库开发环境包括

  1. 代码编辑&编译器(Keil MDK,IAR等)
  2. 下载器驱动(JLink&STLink)
  3. STM32CubeMX

开发环境下载地址

keil mdk5安装全家桶

链接:https://pan.baidu.com/s/1o3znMYT_c_GfCc0abGqmYw
提取码:c957

cubemx安装全家桶

链接:https://pan.baidu.com/s/1-aiZpfv_dczfQBQFHCdApA
提取码:1sfe

安装教程

下载完以上两个压缩包之后再阅读后续内容!!!

安装步骤如下——

  1. Keil安装
  2. JLink,STLink驱动安装
  3. STM32CubeMX安装

1.Keil安装

首先,解压keil mdk5安装全家桶压缩包,点开之后看到如下内容——

首先点击MDK-523.exe进行MDK的安装,安装过程可以参考0-如何安装keil5.pdf

需要注意的是在选择安装路径的页面,一定要保证自己的路径中不含有中文(注意!!!!不要含有中文!!下文中的软件同理,这是一个常识,不要在安装路径中带有中文!!)

一直点击next,等待安装完成即可,跳出该页面可以直接关闭

安装完成后可以在桌面或者是引导菜单中看到这个绿油油的图标,说明keil已经安装完成。

安装完成之后,需要进行破解,首先以管理员方式打开keil(注意,管理员方式!!!)

点击File->License Management..

复制Computer ID到剪贴板中

然后打开keil mdk5安装全家桶中的破解软件文件夹,右键Keil_ARM_MDK_5.00_Keygen_serial_Crack.exe,以管理员方式运行,需要注意可能会被windows defender或者别的杀毒软件当成病毒删掉,如果被删了就去对应的软件下面选择还原

将复制好的Computer ID复制到CID中,Target选择ARM,填完后点击Generate

将生成的破解码粘贴到keil中

点击Add LIC,如下图显示则破解成功

完成keil的安装破解之后,我们开始安装stm32f1与f4的芯片包,依然是在keil mdk5安装全家桶下,找到

直接双击安装即可,他们提供了f1和f4系列芯片的一些具体芯片信息,是下载和创建工程时必要的

2. JLink,STLink驱动安装

Jlink和STlink是常用的两种下载/调试器,一般我们使用jlink/stlink链接开发板与电脑,将电脑编译生成的可执行文件烧录到单片机上。

这是常见的jlink下载器,烧录时遵守jtag协议

这是stlink下载器,烧录时遵守swd协议

也有小型且便宜的stlink下载器

jtag可以兼容swd,也就是说使用jlink同样可以按照swd协议进行下载

Robomaster的开发板都是swd下载接口

我个人推荐使用jlink,因为jlink可以提供一些优秀的调试工具,比如jscope,这是一个功能强大的虚拟示波器,可以实时监视单片机中的变量

下面我们开始安装这两个下载器所需要的驱动——

在keil mdk5安装全家桶下,找到Setup_JLink_V496.exe,双击运行,一路点击next,最后会弹出如下界面

勾选mdk,点击OK即可

成功安装后点击Finish

接着安装stlink

在keil mdk5安装全家桶下,找到ST LINK驱动及教程文件夹,点击进入后找到ST-LINK驱动文件夹

64位系统点击dpinst_amd64.exe进行安装,一路next即可,成功后显示

在STLINK调试补充教程.pdf下有更加详细的配置信息,以及升级stlink固件的方式,如果出现了不能下载的情况,可以参考该文档

STM32CubeMX安装

最后需要安装的是stm32cubemx,下载并解压cubemx安装全家桶,内容如下:

首先双击安装jre-8u191-windows-x64.exe,点击安装之后等待即可,当然你的电脑上可能有更高版本的java,如果有的话,就不必再进行安装了,出现如下界面则安装完成

然后双击安装SetupSTM32CubeMX-5.0.0.exe,如下界面说明安装完成

完成cubemx的安装之后,我们还需要安装软件库。运行cube,点击Help->Manage embedded software packages,在弹出的界面中点击左下角的From local,在弹出的界面中找到cubemx安装全家桶下的两个压缩包STM32Cube_FW_F1_V1.6.0.zip和STM32Cube_FW_F4_V1.19.0.zip,等待自动安装完即可

至此,cubemx所需要的环境也安装完毕了

点灯实验

为了检验自己安装的环境成功与否,参照如下视频进行点灯实验

https://www.bilibili.com/video/av26331717

需要注意的是,视频中使用的cubemx版本比较老,界面和此次安装的cube有所区别,但是两个版本cube的内容基本一致,大家可以慢慢摸索配置的方法,也可以等待下一次的视频更新,会有工程配置的过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/862896.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

负载均衡

负载均衡(Load Balancing)是一种分布式系统架构中的技术,用于将网络请求或任务分散到多个服务器或资源上。 比如:当系统面临大量用户访问,负载过高的时候,通常会使用增加服务器数量来进行横向扩展来提高整个系统的处理能力。 如下图所示:上图的:tomcat-node1、tomcat-n…

Html启动特定的输入法

注册表 shurufa-Handinput.regWindows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\Handinput]@="URL:Handinput Protocol Handler""URL Protocol"=""[HKEY_CLASSES_ROOT\Handinput\DefaultIcon]@="C:\\Program Files (x86)\\SogouInp…

详解AQS五:深入理解共享锁CountDownLatch

CountDownLatch是一个常用的共享锁,其功能相当于一个多线程环境下的倒数门闩。CountDownLatch可以指定一个计数值,在并发环境下由线程进行减一操作,当计数值变为0之后,被await方法阻塞的线程将会唤醒。本篇文章深入剖析CountDownLatch和AQS的关系,并逐行源码解析其实现。C…

线段树从入门到出门

线段树详介(带lazy) 线段树和树状数组不同,它维护的是一个个子序列。如上图,对于一个区间 \([l, r]\),它的左儿子就是 \([l, mid]\),右儿子就是 \([mid + 1, r]\),其中 \(mid = \frac{l+r}{2}\)。 我们可以给线段树上的每一个结点编号,假设父节点编号为 \(x\),左儿子编…

(回顾)2023年度项目管理软件全方位对比:14款最佳工具推荐

在当今竞争激烈的商业环境中,高效的项目管理是企业成功的关键因素之一。无论是初创公司还是大型企业,选择一款合适的项目管理软件能够极大地提升团队协作效率、优化资源分配,并确保项目按时交付。2023 年,市场上涌现出众多优秀的项目管理工具,每一款都有其独特的优势和适用…

2025/1/2 【双指针法】LeetCode27.移除元素 【√】 ❗未完结❗

27. 移除元素 - 力扣(LeetCode) 代码随想录 数组的元素在内存地址中是连续的,不能单独删除数组中的某个元素,只能覆盖。 My answer:快慢指针法class Solution:def removeElement(self, nums: List[int], val: int) -> int:n = len(nums)j = 0for i in range(n):if nums…

2025/1/2 【双指针法】LeetCode27.移除元素 【√】

27. 移除元素 - 力扣(LeetCode) 代码随想录 数组的元素在内存地址中是连续的,不能单独删除数组中的某个元素,只能覆盖。 My answer:快慢指针法class Solution:def removeElement(self, nums: List[int], val: int) -> int:n = len(nums)j = 0for i in range(n):if nums…

招银网络一面,有点难度!

这是一位武汉理工大学同学的招银网络一面面经,同样附带超详细的参考答案。大家可以用来查漏补缺,针对性地补短板。 招银网络一面还是比较简单的,基本都是一些比较重要且高频的常规八股,项目问的不多。到了二面的时候, 会开始主要考察你的项目。1、自我介绍 自我介绍一般是…

【日记】2025 年的第一天!!!!(1688 字)

正文嗯…… 经过实践,以后还是把涩涩放到晚上好了,下午涩涩完就只想睡觉了。一天的元旦假期,下午就睡过去了哈哈哈哈哈哈哈哈哈。今天也没干什么,上午加了班,吃午饭,下午咳咳,睡了一觉,吃晚饭,然后看了两节内科学的视频。我不确定该不该勾掉总论部分。唐子益的内科学暂…

BOE(京东方)“向新2025”年终媒体智享会落地深圳 “屏”实力赋能产业创新发展

12月27日,BOE(京东方)“向新 2025”年终媒体智享会的收官之站在创新之都深圳圆满举行,为这场为期两周、横跨三地的年度科技盛会画上了完美句号。活动期间,全面回顾了 BOE(京东方)2024年在多个关键领域取得的卓越成绩,深入剖析其在六大维度构建的“向新”发展格局,精彩…

linux mint安装Idea

一、前言 这一节我们介绍在Linux下如何安装与破解Intellij idea2017。现在有很多公司开发环境都是Linux,所以掌握在Linux环境下使用Idea办公也是咱们必须得掌握的技能。 记住我们下载的是Ultimate(旗舰版),不是Community(社区版)。Ultimate(旗舰版)是收费的版本,本文主要是针…

linux mint下安装截图工具

在linux下尝试了多款截图工具,综合下来,觉得shutter是最好用的,推荐大家使用。 Shutter 是一个强大的截图工具,强大的功能集成到一个直观的简洁界面,应用程序自带多个区域截图(如全屏,选择界面,活动窗口,网站等),方便应用功能,以及有众多插件和上传到Web服务的功能…