目录

  • 实验平台
  • 环境搭建
    • 一、Keil MDK集成开发环境
      • 1.MDK简介
      • 2.MDK5安装
      • 3.程序下载与调试
    • 二、STM32CubeMX
      • 1.STM32CubeMX简介
      • 2.JAVA JRE安装
      • 3.STM32CubeMX安装
      • 4.STM32CubeH7库安装

实验平台

硬件:银杏科技GT7000双核心开发板-ARM-STM32H743XIH6,银杏科技iToolXE仿真器
软件:最新版本STM32CubeH7固件库,STM32CubeMX v6.10.0,开发板环境MDK v5.35

环境搭建

一、Keil MDK集成开发环境

  Keil MDK软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。它专为微控制器应用而设计,不仅易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用。
  本实验向大家介绍 Keil MDK 集成开发环境,利用 MDK5 软件可以建立一个基于STM32H7xx 系列的 MDK5 工程,同时还将向大家介绍 MDK5 软件的一些使用技巧,希望大家在本实验之后,能够对 MDK5 这个软件有个比较全面的了解。

1.MDK简介

  MDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。目前最新版本为:MDK5.40,该版本使用 uVision5 IDE 集成开发环境,是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。
  MDK5 向后兼容 MDK4 和 MDK3 等,以前的项目同样可以在 MDK5 上进行开发,MDK5同时加强了针对 Cortex-M 微控制器开发的支持,并且对传统的开发模式和界面进行升级,MDK5 由两个部分组成:MDK Core 和 Software Packs。其中, Software Packs 可以独立于工具链进行新芯片支持和中间库的升级。如下图所示:
在这里插入图片描述
  从上图可以看出,MDKCore又分成四个部分:uVision IDE with Editor(编辑器),ARM C/C++ Compiler(编译器),Pack Installer(包安装器),uVision Debugger with Trace(调试跟踪器)。uVision IDE从MDK4.7版本开始就加入了代码提示功能和语法动态检测等实用功能,相对于以往的IDE改进很大。
  Software Packs又分为:Device(芯片支持),CMSIS(ARM Cortex微控制器软件接口标准)和Middleware(中间库)三个小部分,通过包安装器,我们可以安装最新的组件,从而支持新的器件、新的设备驱动库以及最新例程等,加速产品开发进度。MDK5安装包可以在:https://www.keil.com/download/product/下载到。

2.MDK5安装

(1) 双击从官网下载的安装包MDK536.exe进行安装:

在这里插入图片描述
点击Next,下一步:
在这里插入图片描述
勾选I agree…,然后Next,选择安装路径,这里安装到D盘:
在这里插入图片描述
填写用户信息,这里可以随意填写:
在这里插入图片描述
点击Next,进入安装界面:
在这里插入图片描述
点击Finish,安装完成:
在这里插入图片描述
(2) 安装完成之后,需要安装适配STM32H743XIH6的Pack包,MDK会自动弹出Pack Installer界面,后面我们手动下载Pack包,这里我们点击窗口关闭按钮即可:

在这里插入图片描述
点击菜单栏File,然后点击License Management选项:
在这里插入图片描述
输入产品的授权ID并添加许可完成激活(具体激活方法与注册机下载请自行百度):
在这里插入图片描述
(3) 要让MDK5支持STM32H743的开发,还要安装STM32H7的器件支持包:Keil.STM32H7xx_DFP2.8.0.pack和ARM CMSIS, 也可以到下面的网址去下载:http://www.keil.com/pack/
在这里插入图片描述点击打开Pack Installer:

在这里插入图片描述
点击菜单栏File,然后点击Import选项:
在这里插入图片描述
选中下载的文件,并点击打开,耐心等待文件安装:
在这里插入图片描述

3.程序下载与调试

  STM32H7的代码下载以及调试。这里的调试包括了软件仿真和硬件调试(在线调试)。
  CMSIS-DAP、JLINK、ULINK、STLINK等工具不仅可以下载代码还可以实时跟踪程序,从而找到你程序中的bug,使开发事半功倍,这里我们以CMSIS-DAP为例,讲解如何下载程序。
  CMSIS-DAP支持JTAG和SWD,同时STM32也支持JTAG和SWD。所以,我们有2种方式可以用来调试,JTAG调试的时候,占用的IO线比较多,而SW调试的时候占用的IO线很少,只需要两根即可。这里我们采用SWD调试。
  首先,用CMSIS-DAP进行下载与调试,大家要在硬件上,把CMSIS-DAP用USB线连接到电脑USB和板子的SWD接口上。CMSIS-DAP的驱动安装比较简单,安装驱动可以在网上直接下载。在安装了CMSIS-DAP的驱动之后,我们接上CMSIS-DAP,并把SWD口插到STM32开发板上,打开工程,点击打开Options for Target选项卡,在Debug栏选择仿真工具为CMSIS-DAP Debugger,如下图所示。

在这里插入图片描述上图中我们还勾选了Run to main(),该选项选中后,只要点击仿真就会直接运行到main函数。
然后我们点击Settings,设置CMSIS-DAP的一些参数,如下图所示:

在这里插入图片描述
我们使用CMSIS-DAP的SW模式调试,设置SWD的调试速度为10MHz或者5MHz,这里,如果你的USB数据线比较差,那么可能会出问题,此时,你可以通过降低这里的速率来试试。单击确定,完成此部分设置,接下来我们还需要在Utilities选项卡里面设置下载时的目标编程器,如下图所示:
在这里插入图片描述

上图中,我们直接勾选Use Debug Driver,即和调试一样,选择CMSIS-DAP来给目标器件的FLASH编程,然后点击Settings,这里MDK5会根据我们新建工程时选择的目标器件,自动设置flash算法。我们使用的是STM32F407IGTx,FLASH容量为1M字节,所以Programming Algorithm里面默认会有1M型号的STM32F4xx FLASH算法。特别提醒:这里的1M flash算法,不仅仅针对1M容量的STM32F4,对于小于1M FLASH的型号,也是采用这个flash算法的。最后,选中Reset and Run选项,以实现在编程后自动运行,其他默认设置即可。设置完成之后,如下图所示。
在这里插入图片描述
在设置完之后,点击OK,然后再点击OK,回到IDE界面,编译一下工程。接下来我们就可以通过CMSIS-DAP下载代码和调试代码。配置好CMSIS-DAP之后,使用CMSIS-DAP下载代码就非常简单,只需要点击LOAD按钮就可以进行程序下载。下载完成之后程序就可以直接在开发板执行。如下图所示。
在这里插入图片描述
注:实验中采用的仿真器是银杏科技研发的iTool XE仿真器,程序下载时,在Keil MDK的Debug栏选择仿真工具为CMSIS-DAP Debugger(如使用其他仿真器请自行更改),如下图所示。
在这里插入图片描述
在这里插入图片描述

二、STM32CubeMX

  STM32CubeMX是一个图形化的软件配置工具,使用图形向导可以生成STM32初始化代码工程。STM32CubeMX这个工具是ST目前重点打造的工具,目的就是为了方便开发者,节约时间,提高开发效率。
  利用STM32CubeMX软件可以建立一个基于STM32H7系列的工程,同时还介绍STM32CubeMX软件的一些使用技巧,希望在本实验之后,能够对STM32CubeMX这个软件有个比较全面的了解。

1.STM32CubeMX简介

  STM32CubeMX是ST意法半导体的一个图形化的工具,也是配置和初始化C代码生成器(STM32 configuration and initialization C code generation),也就是自动生成开发初期关于芯片相关的一些初始化代码。
  从下图可以看得出,它包含了STM32所有系列的芯片,包含示例和样本(Examples and demos)、中间组件(Middleware Components)、硬件抽象层(Hardwaree abstraction layer)。
在这里插入图片描述
  TM32CubeMX的特性如下:1.直观的选择 STM32 微控制器。2.微控制器图形化配置:自动处理引脚冲突,动态设置确定的时钟树,可以动态确定参数设置的外围和中间件模式和初始化,功耗预测。3.C代码工程生成器覆盖了STM32 微控制器初始化编译软件,如IAR、KEIL、GCC。4.可独立使用或作为 Eclipse 插件使用。
  STM32CubeMX集成了一个全面的软件平台,支持STM32每一个系列的MCU开发。这个平台包括 STM32Cube HAL(一个 STM32 的抽象层集成软件,确保STM32 系列最大的移植性)。再加上兼容的一套中间件(RTOS、USB、TCP/IP 和图形),所有内嵌软件组件附带了全套例程。
STM32CubeMX安装包可以在:https://www.st.com.cn/content/st_com/zh/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html下载到。

2.JAVA JRE安装

  由于STM32CubeMX软件是基于JAVA环境运行的,所以需要安装JRE才能使用。STM32CubeMX要求JRE最低版本是1.7.0_45,如果你电脑已安装JRE版本大于1.7.0_45,则可以不用再下载安装。JAVA JRE安装包可以在:https://www.java.com/en/download/#xd_co_f=NmY4MDY2ZDAtZGI4Ni00ZWMyLTk1OTMtZTc3NDdlMmJiMTE2~下载到,如下图所示。
在这里插入图片描述
双击下载的JAVA JRE文件进行安装,得到如下对话框,点击安装,如下图示。
在这里插入图片描述
进入安装界面, 等待安装完成,如下图所示:
在这里插入图片描述
安装完成,点击“关闭”,如下图示:
在这里插入图片描述

3.STM32CubeMX安装

双击下载的STM32CubeMX文件进行安装,点击”Next”进入下一步,如下图所示:
在这里插入图片描述
选择”I accept the terms of this license agreement.”,点击”Next”,如图下图所示:
在这里插入图片描述
选择安装路径,点击”Next”,如下图所示。
在这里插入图片描述
提示创建安装目录,点击“确定”,如下图所示。
在这里插入图片描述
在这里插入图片描述
等待安装进度完成,点击“Next”,如下图所示。
在这里插入图片描述
至此已经完成STM32CubeMX的安装。

4.STM32CubeH7库安装

  STMCube™是意法半导体的独创计划,旨在通过减少开发工作量、时间和成本,让开发人员的工作更轻松。STM32Cube是STMCube的实现,覆盖了整个STM32产品组合。
  STM32CubeH7将开发STM32H7微控制器应用所需的所有通用嵌入式软件组件聚集在一个软件包中。根据STM32Cube计划,这套组件具有高度可移植性,不仅适用于STM32H7系列包含的微控制器,还适用于其他STM32系列器件。
  STM32的相关库文件可在https://www.st.com.cn/zh/embedded-software/stm32cubeh7.html下载到,如下图所示。
在这里插入图片描述
下载好需要安装的离线包,点击下图按钮(Help -> Manage embedded software packages)或按快捷键”Alt+U”进入库文件管理界面,如下图所示。
在这里插入图片描述
在这里插入图片描述
选择下载的离线包文件,点击“打开”,进入解压安装过程,直到安装完成,如下图所示。
在这里插入图片描述
库安装完成,如下图所示。
在这里插入图片描述
注:截图中的版本号可能不是最新版本,下载最新版本即可。

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

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

相关文章

FPGA学习篇——Verilog学习MUX的实现

PS:目前手上仍然没有板子,按照野火视频的讲解,目前我们只能做到前面六步(其实第一步设计规划也是需要看板子的硬件的,但是现在没有板子就完全与野火传授的板子一致来看) 首先我们以最简单的2路选择器MUX2_1…

OpenStack 学习笔记

OpenStack 1. 什么是 OpenStack 1.1 OpenStack 发展史 2006 年亚马逊推出 AWS,正式开启云计算的新纪元 2010 年 7 月美国国家航空航天局(NASA)与 Rackspace 合作,共同宣布 OpenStack 开放源码计划,由此开启了属于 Open…

mysql小数取整

1 向下取整 SELECT FLOOR(123.456); -- 结果: 1232 向上取整 SELECT CEIL(123.001); -- 结果: 1243 四舍五入 SELECT ROUND(123.456); -- 结果: 123 SELECT ROUND(123.556); -- 结果: 1244 截断(不四舍五入,直接截断小数位) SELECT …

Day43 PHP(mysql不同注入类型、mysql不同注入点、mysql传输不同数据类型 )

一、不同注入类型实际:我们未知sql是哪种类型,只能靠试/使用sql工具原理:闭合程序员写的sql语句,并且执行我们所需要的sql语句,最后将闭合后多余的 用-- 或者#注释掉。 总结一下就是先闭合,后注释。共四种…

Linux应用开发(君正T23):三网智能切换及配网功能

前段时间接手了一个监控项目,其中甲方对于设备的要求有一条就是实现网口eth、WiFi、4G三种手段的联网方式并且当某一个网络不好的时候就去切换到下一个能用的网络,让监控设备持续不断的有网络,保证监控数据的上传。这个部分的功能就交由我来实…

IvorySQL 4.6:DocumentDB+FerretDB 实现 MongoDB 兼容部署指南

背景 MongoDB 诞生之初,便以出色的易用性与详尽的驱动程序文档脱颖而出,堪称对传统关系型数据库的一次重要革新,也正因如此,它迅速成为开发者社区的热门之选。 然而,随着其许可模式从开源转向 SSPL 许可证&#xff0…

论文阅读:arixv 2025 One Token to Fool LLM-as-a-Judge

总目录 大模型相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 https://arxiv.org/pdf/2507.08794 https://www.doubao.com/chat/20698287584991234 速览 这篇文档主要讲了一个关于“大语言模型当裁判”的重要发现——很多我们以为靠谱的AI裁…

webrtc弱网-AlrDetector类源码分析与算法原理

AlrDetector(应用受限区域检测器)是WebRTC中用于检测发送端是否处于应用层限速状态的核心组件。它通过维护一个基于时间间隔的预算系统,监控实际发送数据量与网络容量之间的关系。当发送速率持续低于网络容量的设定比例(如65%&…

ABP + Verify(快照) 驱动的 PDF/Excel 导出回归

ABP + Verify(快照) 驱动的 PDF/Excel 导出回归 🚀 📚 目录 ABP + Verify(快照) 驱动的 PDF/Excel 导出回归 🚀 0) TL;DR ✨ 1) 背景与目标 🎯 2) 架构与职责(解耦渲染器) 🧩 3) “确定性”前置条件(去伪差异) 🔒 4) PDF 回归策略(以 QuestPDF 为例) 📄 4.…

SIFT特征匹配实战:KNN算法实现指纹认证

这个利用了前面学到的SIFT特征检测来实现的,然后这里主要就是引入了一个新的匹配器。这里匹配是用KNN算法进行匹配的。下面来看下细节。介绍函数由于要频繁展示,所以这里定义了一个函数。def cv_show(name, img):cv2.imshow(name, img)cv2.waitKey(0)导入…

网络安全渗透测试第一步信息收集

信息收集是渗透测试中最基础且关键的一步,它直接影响后续漏洞发现和利用的成功率。本文将系统介绍信息收集的常用方法、工具和技巧,帮助你在实战中高效定位目标弱点。 一、搜索引擎利用 1. Google Hacking 通过Google搜索语法快速定位敏感信息、后台地…

C++——类和对象1

1.类的定义1.1 类定义格式class为定义类的关键字,Stack为类的名字,{ }中的内容是类的主题为了,注意类定义结束时后面的分号不能省略。类体中的内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方…

动手学Agent:Agent设计模式——构建有效Agent的7种模型

Agent本身的定义也不是绝对的,从LLM到最高等级的Agent,中间是有大量灰度地带的,在Anthropic看来,Agent可以以多种方式定义,有些人将完全自主系统定义为Agent,而另一些团队则将预定义的工作流程定义为Agent。…

Windows 下 .venv 激活脚本深度定制:同时注入 PyTorch 调试日志与国内网络加速通道——从“能跑”到“好调”的完整工程化方案

Windows 下 .venv 激活脚本深度定制:同时注入 PyTorch 调试日志与国内网络加速通道 ——从“能跑”到“好调”的完整工程化方案 一、为什么非得改激活脚本? 重复劳动最耗时 每次打开终端都要敲四五行 set/export,人脑就是不可靠的剪贴板。 环…

[BX]和loop指令,debug和masm汇编编译器对指令的不同处理,循环,大小寄存器的包含关系,操作数据长度与寄存器的关系,段前缀

[bx]是什么[bx]这个表达方式和[0]很像,他们俩的功能也很像。之前就提到了,[0]表示一个内存单元,他的偏移地址是0。从这边我们可以引出内存单元的定义:要有内存单元的地址,要有内存单元的长度(类型&#xff…

域格YM310 X09移芯CAT1模组HTTPS连接服务器

HTTPS连接服务器 本文档介绍了HTTPS连接服务器的大致流程&#xff0c;测试服务器为httpbin.org。 HTTPS连接服务器流程 创建证书文件 创建一个文件 ATFSCREATE<filename>参数&#xff1a;<filename> 文件名 写入CA证书 ATFSWRITE<filename>,<mode&…

【ManiSkill】常见envs学习笔记

1. StackCube-v1 用于模拟机器人在桌面场景中将红色立方体&#xff08;cubeA&#xff09;堆叠到绿色立方体&#xff08;cubeB&#xff09;上的操作。该任务强调精确抓取、放置和稳定性控制。成功条件包括红色立方体稳定堆叠在绿色立方体上且不被机器人抓取。 参数 (Arguments…

Java 网络编程全解析

前言&#xff1a;网络编程的意义与价值 前言&#xff1a;网络编程的意义与价值 在当今互联网时代&#xff0c;网络编程是软件开发的核心技能之一。无论是桌面应用、移动应用还是企业级系统&#xff0c;几乎都需要与网络交互。Java 作为一门跨平台的编程语言&#xff0c;提供了完…

HarmonyOS应用拉起系列(三):如何直接拉起腾讯/百度/高德地图进行导航

在鸿蒙应用开发中&#xff0c;经常需要跳转第三方地图应用&#xff08;如 腾讯地图、百度地图、高德地图&#xff09;进行导航。无论是出行类 App、物流类 App&#xff0c;还是线下活动类应用&#xff0c;都存在“跳转地图导航”的实际需求。写完HarmonyOS应用拉起系列一和二后…

PCGrad解决多任务冲突

论文解读&#xff1a;"Gradient Surgery for Multi-Task Learning" 1. 论文标题直译 Gradient Surgery: 梯度手术for Multi-Task Learning: 应用于多任务学习 合在一起就是&#xff1a;为多任务学习量身定制的梯度手术。这个名字非常形象地概括了它的核心思想。 …