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

相关推荐
etcix35 分钟前
implement copy file content to clipboard on Windows
windows·stm32·单片机
谱写秋天41 分钟前
在STM32F103上进行FreeRTOS移植和配置(STM32CubeIDE)
c语言·stm32·单片机·freertos
玖別ԅ(¯﹃¯ԅ)5 小时前
SysTick寄存器(嘀嗒定时器实现延时)
stm32·单片机·嵌入式硬件
玖別ԅ(¯﹃¯ԅ)8 小时前
PID学习笔记6-倒立摆的实现
笔记·stm32·单片机
YLAD8 小时前
gnu arm toolchain中的arm-none-eabi-gdb.exe的使用方法?
arm开发
饶宇航10 小时前
嵌入式硬件——ARM
arm开发
small_wh1te_coder1 天前
GCC深度剖析:从编译原理到嵌入式底层实战
汇编·c++·面试·嵌入式·状态模式·c
stone51951 天前
TOTP算法与HOTP算法
c语言·物联网·算法·嵌入式·iot平台·智能门锁
Wallace Zhang1 天前
STM32 - Embedded IDE - GCC - 解决LWRB库在GCC编译器会编译失败,在ARMCC编译器时却正常编译
ide·stm32·嵌入式硬件
xnglan1 天前
蓝桥杯手算题和杂题简易做法
数据结构·数据库·c++·python·算法·职场和发展·蓝桥杯