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过程。

相关推荐
BackCatK Chen2 小时前
第 8 篇:TMC2240 电机正反转实现|DIR 引脚控制 + 代码优化(稳定不抖动)
stm32·单片机·嵌入式硬件·保姆级教程·电机正反转·tmc2240·dir引脚控制
番茄灭世神4 小时前
Linux应用编程介绍
linux·嵌入式
森G5 小时前
七、04ledc-sdk--------makefile有变化
linux·c语言·arm开发·c++·ubuntu
Hello_Embed7 小时前
libmodbus 移植 STM32(USB 串口后端篇)
笔记·stm32·单片机·嵌入式·freertos·libmodbus
VekiSon8 小时前
Linux内核驱动——杂项设备驱动与内核模块编译
linux·c语言·arm开发·嵌入式硬件
AI+程序员在路上9 小时前
Nand Flash与EMMC区别及ARM开发板中的应用对比
arm开发
羽获飞13 小时前
从零开始学嵌入式之STM32——9.STM32的时钟系统
stm32·单片机·嵌入式硬件
Ch_champion13 小时前
嵌入式研发人员的共享盘文件目录-分享
嵌入式
17(无规则自律)15 小时前
深入浅出 Linux 内核模块,写一个内核版的 Hello World
linux·arm开发·嵌入式硬件