【正点原子STM32连载】第三章 开发环境搭建摘自【正点原子】APM32F407最小系统板使用指南

news2024/11/25 13:42:02

1)实验平台:正点原子stm32f103战舰开发板V4
2)平台购买地址:https://detail.tmall.com/item.htm?id=609294757420
3)全套实验源码+手册+视频下载地址: http://www.openedv.com/thread-340252-1-1.html#

第三章 开发环境搭建

本章将介绍如何搭建APM32的开发环境。通过本章的学习,读者将了解到在进行APM32的开发过程中会涉及到的开发工具,例如IDE、调试器、串口工具等。
本章分为如下几个小节:
3.1 常用开发工具简介
3.2 MDK安装
3.3 仿真器驱动安装
3.4 USB虚拟串口驱动安装

3.1 常用开发工具简介

在进行APM32开发的过程中需要使用到一些开发工具,例如IDE、仿真器、串口调试助手等。常用的工具如下表所示:
在这里插入图片描述

表3.1.1 常用开发工具
读者可以根据自己的需求和喜好,选个合适的开发工具。上表中工具名称加粗的开发工具为本书推荐的APM32开发工具,即IDE推荐使用MDK、仿真器推荐使用CMSIS-DAP、串口调试助手推荐使用ATK-XCOM,接下来介绍如何安装这些开发工具及其相关的软件驱动。
3.2 MDK安装
注意:MDK作为免费软件使用时,仅能用于非商业用途,若要商用,请读者自行联系Keil公司进行购买,本书使用MDK仅用于教学用途。
MDK的安装分为两个步骤:1,安装MDK软件本体;2,安装对应芯片的设备包。
MDK安装过程中涉及的安装包可以在A盘6,软件资料1,软件MDK中找到,如下图所示(如有压缩包,请解压后查看,且后续若软件更新,则提供的软件可能非最新版本):
在这里插入图片描述

图3.2.1 MDK软件及APM32F4设备包
当然,读者也可以自行到软件提供方的官网自行下载,其中MDK软件本体由Keil提供,下载链接为https://www.keil.com/download/product/,截止至本书编写的时候,MDK的最新版本为5.37(MDK537.EXE),由于MDK从5.37版本开始,不再随软件附带Arm Compiler 5(AC5)编译器,并且后续进行APM32开发的时候需要使用AC5,因此安装5.37及以后版本的MDK需要读者再手动安装AC5,AC5安装包(ARMCompile_506_Windows_x86_b960.zip)由ARM提供,下载链接为https://developer.arm.com/downloads/view/ACOMP5(可能需要注册并登入账号),当然读者也可以使用附带了AC5的5.36版本(MDK536.EXE)。设备包(Geehy.APM32F4xx_DFP.1.0.2.pack)是由APM32芯片厂家Geehy提供的,下载链接为https://geehy.com/apm32?id=47。
MDK 5.36与MDK 5.37的安装过程类似,本书以MDK5.37为例展示如何安装MDK软件本体,首先打开MDKxxx.EXE安装包,接着一直点击“Next”按钮即可完成安装(需要同意许可协议,安装路径保持默认即可),安装完成后就可以在电脑桌面看到MDK的软件图标,如下图所示:
在这里插入图片描述

图3.2.2 MDK软件图标
MDK软件本体安装好之后,还需要安装对应芯片的设备包,设备包的安装也很简单,仅需打开设备包安装程序,一路根据提示点击“Next”按钮即可完成安装,若读者后续要使用MDK软件基于其他芯片进行开发,也仅需安装对应芯片的设备包即可。
至此MDK 5.36软件安装完成,若读者安装MDK 5.37,则还需进行以下步骤安装AC5。
首先解压AC5安装包,然后打开安装包中的“setup.exe”可执行程序,其路径如下图所示:
在这里插入图片描述

图3.2.3 AC5安装程序路径
打开AC5的安装程序后,也是一样在同意许可协议后一路点击“Next”按钮,但务必要记住AC5的安装路径,如下图所示:
在这里插入图片描述

图3.2.4 AC5安装路径
如上图中,AC5将被安装在MDK默认的安装路径里的“ARMCC”文件夹中,虽然这个路径可以是任意的,但是务必要记下这个路径。
安装完成AC5后,最后还要配置MDK,使得MDK能够找到并使用AC5编译器。由于MDK在没有打开工程的状态下无法配置编译器,因此需要打开任意一个工程,读者可以在标准例程文件夹(A盘4,程序源码标准例程)中任意打开一个MDK工程,本书就以“跑马灯实验”为例,进入到标准例程实验1 跑马灯实验ProjectsMDK-ARM,可以看到该目录下有一个文件后缀为“uvprojx”的文件,该文件就是MDK的工程文件,如下图所示:
在这里插入图片描述

图3.2.5 MDK工程文件
找到MDK工程文件后,使用MDK打开该文件,打开后如下图所示:
在这里插入图片描述

图3.2.6 打开MDK工程
随后根据下图指示,打开工程项目管理窗口,如下图所示:
在这里插入图片描述

图3.2.7 打开工程项目管理窗口
接着再根据下图指示,结合AC5的安装路径设置MDK使用的AC5编译器,如下图所示:
在这里插入图片描述

图3.2.8 设置MDK使用AC5编译器
设置完成之后,点击工程项目管理窗口底部的“OK”按钮,关闭窗口即可,至此MDK安装完成。
3.3 仿真器驱动安装
APM32可通过CMSIS-DAP、J-Link等仿真调试器进行程序的下载和仿真调试,本书推荐使用CMSIS-DAP仿真器,该仿真器在Windows操作系统下是免驱的,即无需安装驱动程序,即插即用,非常方便。
正点原子开发了两种规格的CMSIS-DAP仿真器:DAP仿真器【高速版】ATK-HSDAP和DAP仿真器【普速版】ATK-DAP,两款仿真器在使用上完全一样,只是高速版的速度更快,读者可根据实际需求进行选择。
3.4 USB虚拟串口驱动安装
在进行APM32开发的过程中,会经常使用串口输出一些调试信息方便调试程序,这些调试信息可通过PC端的串口调试助手查看,不过APM32的串口并不能直接与PC连接。正点原子APM32F407最小系统板板载了CH340C芯片,该芯片能够将APM32的串口信号与PC端的USB信号进行转换,再配合PC端相关的软件驱动,能够实现在PC端虚拟出一个串口,使用该虚拟串口就能够与APM32的串口进行通信了。
因此接下来需要在PC端安装CH340C的驱动,该驱动由CH340C的官方沁恒提供,读者可前往沁恒的官网(https://www.wch.cn/)下载CH340C的驱动,也可在A盘6,软件资料1,软件CH340驱动文件夹下找到CH340C的驱动安装程序,如下图所示:
在这里插入图片描述

图3.4.1 CH340C驱动安装程序
打开CH340C驱动安装程序后,点击安装程序中的“安装”按钮,若提示“驱动安装成功”,则说明CH340C驱动安装成功,如下图所示:
在这里插入图片描述

图3.4.2 CH340C驱动安装成功
成功安装CH340C驱动后,将正点原子APM32F407最小系统板的USB_UART接口通过具有数据传输功能的USB数据线与PC端的USB端口进行连接,随后便可在PC端的设备管理器中查看到CH340C虚拟出的串口,如下图所示:
在这里插入图片描述

图3.4.3 PC端显示的虚拟串口
从上图中可以看到,CH340C虚拟出的串口被PC分配了COM3的端口号,该端口号用于串口调试助手等上位机确定与之通信的串口端,值得一提的是,当CH340C与不同的PC,甚至是与同一台PC的不同USB端口进行连接后,虚拟出的串口被PC分配到的端口号都有可能是不同的,如COM4、COM5等,读者可以根据设备管理器中端口设备的名称来判断具体是哪一个端口号,如果同时连接了多个CH340系列的芯片,那么只能挨个测试了。
安装完USB虚拟串口驱动后,就能够使用串口调试助手,如正点原子开发的ATK-XCOM软件和板卡通过串口进行通信了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【脚踢数据结构】队列(顺序和链式)

(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,Linux基础,ARM开发板,软件配置等领域博主🌍快上🚘,一起学习,让我们成为一个强大的攻城狮!送给自己和读者的一句鸡汤🤔&…

JVM内存区域

预备 为了更好的理解类加载和垃圾回收,先要了解一下JVM的内存区域(如果没有特殊说明,都是针对的是 HotSpot 虚拟机。)。 Java 源代码文件经过编译器编译后生成字节码文件,然后交给 JVM 的类加载器,加载完…

揭秘内存暴涨:解决大模型分布式训练OOM纪实

在现代深度学习开发中,我们通常依赖其他模块,像搭积木一样构建复杂的软件系统,这个过程往往快速且有效。然而,如何在遇到问题时迅速定位和解决问题,由于系统的复杂性和耦合性,一直困扰着深度学习系统设计和…

UTONMOS:元宇宙在网络游戏领域得到充分运用

元宇宙到底是个啥?这个词大概意思应该就是人类能从真实世界进入一个虚拟世界体验另一种生活,这个虚拟的世界就叫“元宇宙”。 从科幻走入现实,元宇宙究竟有什么用途?它离我们到底还有多远?又将给我们的生活带来哪些变…

htmlCSS-----高级选择器

目录 前言 伪类选择器 状态类 结构类 伪元素选择器 属性选择器 前言 前面我们学习了CSS中的相关选择器(链接html&CSS-----CSS选择器(上)_灰勒塔德的博客-CSDN博客 html&CSS-----CSS选择器(下)_灰勒塔…

【Linux】线程的互斥

目录 写在前面的话 相关背景概念 什么是互斥 互斥锁(互斥量) 互斥锁的使用 一些相关的问题 线程安全和可重入的区别 写在前面的话 本文章主要介绍了线程的互斥的相关内容,而且本文的概念也比较多,所以需要有一些前提知识作…

【ES6】深入理解ES6(1)

一、块级作用域绑定 var声明及变量提升机制 二、字符串和正则表达式 字符串(String)是JavaScript6大原始数据类型。其他几个分别是Boolean、Null、Undefined、Number、Symbol(es6新增)。 更好的Unicode支持 1. UTF-16码位 字…

23款奔驰AMG GT50更换原厂运动排气系统,战斗感立马提升了

改装运动排气,原车中控的按键组也是需要更换的。与原车按键相比,只是多了一个排气的控制按键,也正是这个按键,能让车辆可静可怒,安静与怒吼就在一键之间。

QT-图标绘画工具

QT-图标绘画工具 一、效果演示二、关键程序三、程序链接 一、效果演示 二、关键程序 代码如下: #include "DrawDialogFactory.hpp" #include "DrawDialog.hpp" #include "GlobalDrawProperties.hpp"#include "Shape.hpp"…

pnpm常用命令

pnpm常用命令 下载pnpm,但是出现了 npm WARN notsup Unsupported engine for pnpm8.6.12: wanted: {"node":">16.14"} (current: {"node":"14.15.0","npm":"6.14.8"}) npm WARN notsup Not compa…

ViewUI表格Table嵌套From表单-动态校验数据合法性的解决方法

项目场景: 项目需求:在表格中实现动态加减数据,并且每行表格内的输入框,都要动态校验数据,校验不通过,不让提交数据,并且由于表格内部空间较小,我仅保留红边框提示,文字…

【编程指南】ES2016到ES2023新特性解析一网打尽

ES2016 Array.prototype.includes() Array.prototype.includes 方法: 这个方法用于检查数组是否包含特定元素,如果包含则返回 true,否则返回 false // 我有一个水果篮子 const fruitBasket [apple, banana, orange, grape];// 我要检查篮…

关于pycharm安装出现的interpreter field is empty,无法创建项目存储位置

关于pycharm安装出现的interpreter field is empty(解释器为空) 关于pycharm安装出现的interpreter field is empty,无法创建项目存储的位置。如图: 我之前安装的时候一直老是有这个提示,后来才发现是因为没安装这个p…

腾讯云服务器轻量和CVM有什么区别?

腾讯云轻量服务器和云服务器有什么区别?为什么轻量应用服务器价格便宜?是因为轻量服务器CPU内存性能比云服务器CVM性能差吗?轻量应用服务器适合中小企业或个人开发者搭建企业官网、博客论坛、微信小程序或开发测试环境,云服务器CV…

linux 安装go 1.18版本

首先去官网找到对应的版本 直接下载下来(如果服务器可以直接访问到go 官网也可以wget直接下载到服务器) 然后把该包上传到linux 的/usr/local 目录下 然后直接解压安装该包: sudo tar -C /usr/local -zxvf go1.18.10.linux-amd64.tar.gz 然…

通过Statement静态语句,实现CRUD操作

首先你需要创建 数据库 和 s_students学生表,再进行下一步的 增(add),删(del),改(update),查(query)。 查询所有学生姓名: Testvoid query(){try{Statement st conn.createStatement();ResultS…

利用Torchmetrics库快速进行Torch的评价指标计算(推荐)

目录 1、安装 2、基本流程介绍 3、MetricCollection 4、自定义指标 5、我们可以调用多个指标计算不同的任务 6、可以是标签,也可以是one_hot编码 7、常用分类指标计算 8、异常报错 1、安装 官网地址:Welcome to TorchMetrics — PyTorch-Metrics 1.0.1 documenta…

JUL 日志 - 最简单易用的Java日志框架

在正式的生产环境下是不能使用 System.out 进行日志记录的 因为 System.out 不能提供时间、线程、执行过程 等信息,如果要手动打印输出则会非常麻烦 而日志就帮我们把这些事给干了 接下来我们学一个最简单的日志框架 JUL JUL全称Java util Logging是java原生的日志框…

用户数据报协议UDP

UDP的格式 载荷存放的是:应用层完整的UDP数据报 报头结构: 源端口号:发出的信息的来源端口目的端口号:信息要到达的目的端口UDP长度:2个字节(16位),即UDP总长度为:2^16bit 2^10bit * 2^6bit 1KB * 64 64KB.所以一个UDP的最大长度为64KBUDP校验和:网络的传输并非稳定传输,…

资源限制类题目解法,看这一篇就够了!

算法拾遗三十七资源限制类题目 资源限制技巧汇总32位无符号整数的范围是0~4,294,967,295,现在有一个正好包含40亿个无符号整数的文件,可以使用最多1GB的内存,怎么找到出现次数最多的数32位无符号整数的范围是0~4294967295,现在又一…