CT117E-M4 CubeMX与Keil5 MDK-ARM基础配置

目录

1.CubeMX构建项目

2.芯片时钟配置

2.1 芯片引脚配置

 2.2 时钟树配置

3.调试接口配置

4.项目管理器Project Manager配置

4.1 project

4.2 Code Generator

5. 生成代码

6.MDK_ARM配置

6.1 编译器选择

​6.2 调试器配置

7. 创建本地代码文件夹

8. #include 路径设置


1.CubeMX构建项目

        打开CubeMX后,可以从如下两个选项选择任一个进行创建项目:

        在1处输入框输入STM32G431RB,选择该芯片。再根据2处,选择第二个芯片型号。随后3处,点击Start Project。

         此时进入芯片配置界面:

2.芯片时钟配置

2.1 芯片引脚配置

        (1)点击System Core

        (2)点击RCC(Reset and Clock Control,复位和时钟控制模块)

‌        (3)选择高速时钟HSE

‌        (4)选择Crystal/Ceramic Resonator(晶振/陶瓷谐振器)

‌        (5)芯片PF0引脚被自动设置为RCC_OSC_IN外部时钟输入、PF1引脚为RCC_OSC_OUT外部时钟输出

 2.2 时钟树配置

        (1)时钟输入频率设置为24MHZ。因为官方用户手册中7.1节的晶振频率为24MHZ。

        (2)选择HSE

        (3)选择PLLCLK,使HSE生效。

        (4)将HCLK处改为80MHZ。输入后回车,使配置生效。

3.调试接口配置

        在SYS中 ,Debug选择Serial Wire(串行调试)。

4.项目管理器Project Manager配置

4.1 project

        (1)项目名不能有中文

        (2)项目路径不能有中文

        (3)IDE选择MDK-ARM。之后在 MDK-ARM中编写代码。

4.2 Code Generator

         勾选Generate peripheral initialization as a pair of '.c/.h' files per peripheral,为外围设备也就是单片机,基于在CuberMX中的配置,生成初始化的.c/.h文件。

5. 生成代码

        点击generate code,生成代码。

        Open Folder,可以打开创建的CubeMX项目所在目录:

         其中,MDK-ARM目录存放着MDK-ARM工程文件。

6.MDK_ARM配置

                打开MDK-ARM工程。其中最重要的就是main.c主程序。

 6.1 编译器选择

        按照如下顺序,选择版本6。本人的版本5不可以。 

6.2 调试器配置

         选择CMSIS-DAP Debugger。CMSIS-DAP(Cortex Microcontroller Software Interface Standard - Debug Access Port) 是 ARM 定义的 开源调试接口协议,允许调试器通过 USB 连接到目标 MCU,并通过 SWD/JTAG 进行调试和下载程序。

        再按照上图对调试器进行配置,使其将程序下载到单片机中后,自动reset并运行程序。 

7. 创建本地代码文件夹

        在CubeMX工程目录下创建BSP文件夹,用于存放个人编写以及修改过的官方驱动文件,便于最终提交结果。 

         同时在MDK-ARM中创建对应的BSP文件夹,将CubeMX工程目录下创建BSP文件夹中的文件添加到这里,方便在MDK-ARM中编写代码。

8. #include 路径设置

        我们编写的.h/.c文件在CubeMX工程目录下的BSP文件夹,直接在main.c中引用会报错,程序不知道BSP文件夹。所有将BSP文件夹路径添加到MDK-ARM的引用路径:

        找到BSP文件夹所在位置,将其添加到include paths。 

        本本篇到此结束,下篇记录点亮LED过程。

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

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

相关文章

MySQL中有哪几种锁?

大家好,我是锋哥。今天分享关于【MySQL中有哪几种锁?】面试题。希望对大家有帮助; MySQL中有哪几种锁? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在MySQL中,锁是用来控制并发访问的机制,确…

MongoDB 和 Elasticsearch的区别、优缺点对比,以及选型建议

MongoDB 和 Elasticsearch 在存储和搜索方面各有特点,适用于不同的场景。以下是它们的区别、优缺点对比,以及选型建议。 1. 概述 MongoDB:分布式 NoSQL 文档数据库,基于 BSON(类似 JSON)的文档存储&#x…

55.HarmonyOS NEXT 登录模块开发教程(九):部署与发布

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! HarmonyOS NEXT 登录模块开发教程(九):部署与发布 效果预览 1. 引言 在前八篇教程中,我们介绍了H…

vue3实现跨页面缓存

避免频繁向后端发送请求,vue3中,可以用缓存机制,为了实现跨页面缓存,可以把缓存放到localsotrage里面 关键代码: const globalCache JSON.parse(localStorage.getItem(globalCache)) || {}; 然后加一个forceRefresh关键字, const fetchData async (forceRefresh false) …

c++类和对象(下篇)上

今天又重新回到c的学习中~在前两篇博客中,我简单的学习了类的定义,实例化,以及类中的默认成员函数.下篇是类和对象的收尾篇,在这篇中我将补充一下中篇所讲的构造函数以及介绍一些类和对象的新知识.下面让我们开始学习吧. 再谈构造函数 在之前我们实现构造函数时,初始化成员变量…

深度学习 bert流程

Token IDs 在自然语言处理任务中,特别是使用预训练模型如BERT时,文本首先通过一个分词器(例如 BertTokenizer)转换为一系列的token IDs。这些ID是每个词或子词单元在词汇表(包含汉字、英文单词、标点符号)…

PPT内视频播放无法播放的原因及解决办法

PPT内视频无法播放,通常是视频编解码的问题。目前我遇到的常见的视频编码格式有H.264,H.265,VP9,AV1这4种。H.264编解码的视频,Windows原生系统可以直接播放,其他的视频编码格式需要安装对应的视频编解码插…

星越L_行李舱空间拓展讲解

目录 1.储物槽 2.底板盖储物空间 3.挂钩 3.左侧照明灯 4.第二排座椅放倒 1.储物槽 使用钥匙或者后备箱按钮打开电动后备箱,左侧储物槽可储藏物品。 2.底板盖储物空间 打开地板盖,下方有储物空间。并放置了随车工具。 3.挂钩 后备箱左右两测各有一个挂钩。

深度学习与大模型-矩阵

矩阵其实在我们的生活中也有很多应用,只是我们没注意罢了。 1. 矩阵是什么? 简单来说,矩阵就是一个长方形的数字表格。比如你有一个2行3列的矩阵,可以写成这样: 这个矩阵有2行3列,每个数字都有一个位置&a…

LuaJIT 学习(2)—— 使用 FFI 库的几个例子

文章目录 介绍Motivating Example: Calling External C Functions例子:Lua 中调用 C 函数 Motivating Example: Using C Data StructuresAccessing Standard System FunctionsAccessing the zlib Compression LibraryDefining Metamethods for a C Type例子&#xf…

基于 FastText、dlib 和 CppJieba 的中文语义相似度计算实践

在自然语言处理(NLP)领域,语义相似度计算是许多任务的核心,例如问答系统、文本检索和推荐系统。然而,中文因缺乏显式分词和复杂的语义结构,实现高效的语义对比具有一定挑战性。 本文将介绍如何结合 CppJieba(高效中文分词工具)、FastText(词向量模型)和 dlib(机器学…

HCIA-11.以太网链路聚合与交换机堆叠、集群

链路聚合背景 拓扑组网时为了高可用,需要网络的冗余备份。但增加冗余容易后会出现环路,所以我们部署了STP协议来破除环路。 但是,根据实际业务的需要,为网络不停的增加冗余是现实需要的一部分。 那么,为了让网络冗余…

Unity基于C#+UGUI解决方案,制作每日签到系统(本地存储签到数据)

一、需求介绍:基于本地存储系统制作一个每日签到系统界面,相关签到界面如下图所示,点击“签到有礼”按钮后就会跳转到“每日登录礼”这个界面,点击“立即签到”按钮之后,按钮就会置灰,而且按钮的文字会变成“等待明日”。 二、制作界面显示相关功能,需要在Unity中新建一…

AI本地部署

文档加载(Document Loading):从多种不同来源加载文档。LangChain提供了100多种不同的文档加载器,包括PDF在内的非结构化的数据、SQL在内的结构化的数据,以及Python、Java之类的代码等​ •文本分割(Splitti…

精准车型识别:视觉分析技术的力量

随着智慧城市和智能交通系统的快速发展,车型识别检测成为交通管理、安全监控和数据分析的关键技术之一。利用视觉分析的方式,我们可以高效、准确地检测监控下的车辆类型、车牌信息及车流量,为城市交通管理提供有力支持。本文将从背景、技术实…

上下文微调(Contextual Fine-Tuning, CFT)提高大型语言模型(LLMs)在特定领域的学习和推理能力

大型语言模型(LLMs)在开放领域任务中表现出色,但在快速演变的专业领域(如医学、金融)中面临挑战: 知识更新难题:传统指令微调(Instruction Fine-Tuning, IFT)依赖显式指令,难以适应动态知识。灾难性遗忘:持续预训练(Continued Pretraining, CPT)可能导致模型遗忘已…

在 LaTeX 中强制表格位于页面顶部

在 LaTeX 中强制表格位于页面顶部,可以通过以下 多种方法结合使用,按优先级推荐: 方法 1:使用 [!t] 位置限定符 原理:通过 [!t] 强制 LaTeX 优先将表格放置在页面顶部(Top),! 表示忽…

kotlin与MVVM的结合使用总结(二)

在 MVVM(Model - View - ViewModel)架构中,M 层即 Model 层,主要负责数据的管理、存储和获取,它与业务逻辑和数据处理相关。在 Kotlin 中实现 MVVM 的 M 层,通常会涉及数据类的定义、数据的本地存储与远程获…

电子元器件选型与实战应用—16 怎么选一个合适的MCU芯片?

文章目录 1. 选型要素1.1 价格1.2 技术支持1.3 厂家优势1.4 功耗1.5 特殊功能1.6 统计外设1.7 确定外设占用的内存和flash大小1.8 确定外设通信接口1.9 确定外设通信接口的电平1.10 确定外设的GPIO数量1.11 确定外设的供电和功耗1.12 确定外设GPIO的种类1.13 确定ADC的数量1.14…

VSCode 搭建C++编程环境 2025新版图文安装教程(100%搭建成功,VSCode安装+C++环境搭建+运行测试+背景图设置)

名人说:博观而约取,厚积而薄发。——苏轼《稼说送张琥》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、VScode下载及安装二、安装 MinGW-w64 工具链三、Windows环境变量配置四、检查 M…