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

目录

1.CubeMX构建项目

2.芯片时钟配置

[2.1 芯片引脚配置](#2.1 芯片引脚配置)

[2.2 时钟树配置](#2.2 时钟树配置)

3.调试接口配置

[4.项目管理器Project Manager配置](#4.项目管理器Project Manager配置)

[4.1 project](#4.1 project)

[4.2 Code Generator](#4.2 Code Generator)

[5. 生成代码](#5. 生成代码)

6.MDK_ARM配置

[6.1 编译器选择](#6.1 编译器选择)

[​6.2 调试器配置](#6.2 调试器配置)

[7. 创建本地代码文件夹](#7. 创建本地代码文件夹)

[8. #include 路径设置](#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过程。

相关推荐
全栈工程师修炼日记18 小时前
ARM TrustZone技术如何守护你的隐私
arm开发·trustzone·安全世界·非安全世界
田甲18 小时前
【STM32】墨水屏驱动开发
stm32·单片机·墨水屏
沐欣工作室_lvyiyi1 天前
采用AIOT技术的防疫物资监控系统的设计与开发(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计·防疫物资
光子物联单片机1 天前
STM32G474单片机开发入门(四)中断详解及GPIO外部中断输入
stm32·单片机·嵌入式硬件·mcu
逼子格1 天前
【Proteus仿真】虚拟终端出现乱码问题解决
单片机·嵌入式硬件·proteus·嵌入式·硬件工程·电路仿真·虚拟终端
点灯小铭1 天前
基于stm32的物联网OneNet火灾报警系统
stm32·单片机·嵌入式硬件·物联网·毕业设计·课程设计
m0_631274361 天前
嵌入式八股文-ARM
arm开发
许商2 天前
【stm32】【edgetx】解析链接脚本文件(ld)
stm32·单片机·嵌入式硬件
Kent_J_Truman2 天前
【第几小 / 分块】
算法·蓝桥杯
SundayBear2 天前
LVGL 开发指南:从入门到精通的嵌入式 GUI 实战心法
单片机·嵌入式·lvgl