STM32cubeMX的初始化以及初步调试


一、安装STM32cubeMX

1.1 安装JRE

由于 STM32CubeMX 软件是基于 JAVA 环境运行的,所以需要安装 JRE (Java Runtime Environment)才能使用。
安装链接如下:JRE
根据提示安装即可,注意安装的位数为64位。

1.2 安装STM32cubeMX

官网链接如下:cubeMX

同样地,根据安装提示,一步步操作就可以正确安装啦。

1.3 安装相应的hal库

安装STM32cubeMX后,打开,点击上方的Help -> Manage embedded software packages
在这里插入图片描述
选择芯片型号和版本号后,点击istall now 即可。
在这里插入图片描述

二、初始化cubeMX

在正确安装cubeMX后,我们需要先配置一些选项,操作如下。

2.1.创建工程

在这里插入图片描述

2.2.选择芯片型号

具体型号为STM32F103C8,然后点击start project
在这里插入图片描述

2.3.选择调试方式

点击system core
进入SYS,在debug下选择serial wire:
在这里插入图片描述

2.4.配置时钟

点击Clock Configuartion,勾选PLLCLK
在这里插入图片描述
.将hse那里设为Crystal/Ceramic Resonator:
在这里插入图片描述

2.5 添加引脚

我们要添加的引脚为A4,B9,C15
.选择GPIO选项,点击芯片选择合适引脚
在这里插入图片描述
选择模式为端口输出
在这里插入图片描述

2.6命名项目

选择路径和IDE
在这里插入图片描述

2.7选择初始文件

进入 code generate界面,选择生成初始化.c/.h文件,后面点击generate code,选择open project
在这里插入图片描述

三、在keil上的仿真

3.1 打开项目

根据我们创作的目录,找到并打开工程文件
在这里插入图片描述

3.2 添加代码

找到对应路径的main文件,在主函数先添加如下代码
在这里插入图片描述
图中代码如下

SystemClock_Config();//系统时钟初始化
MX_GPIO_Init();//gpio初始化
while (1)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);//PA4亮灯
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄灯
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_SET);//PC15熄灯
HAL_Delay(1000);//延时1s
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);//PA4熄灯
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);//PB9亮灯
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_SET);//PC15熄灯
HAL_Delay(1000);//延时1s
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);//PA4熄灯
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄灯
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_RESET);//PC15亮灯
HAL_Delay(1000);//延时1s
}

3.3观察输出波形

在这里插入图片描述
选择芯片和虚拟调试
在这里插入图片描述
选择晶振大小
在这里插入图片描述
编译
在这里插入图片描述
调试
在这里插入图片描述
选择逻辑分析仪
在这里插入图片描述
选择引脚(如果出现UNKONWN SIGNAL,那么可能在debug处存在错误),
在这里插入图片描述
配置界面选项,点击in和out调制grind大小,使之达到1s.
在这里插入图片描述
运行,点击箭头所示,运行程序,得到下图
在这里插入图片描述

四、烧录到芯片

4.1 实验器材

usb转ttl接口(CH340)
在这里插入图片描述
STM32最小开发板
在这里插入图片描述
杜邦线
在这里插入图片描述

4.2软件部分

生成hex文件
在这里插入图片描述
选择正确的路径
在这里插入图片描述
烧录前,需要先了解stm32的三种启动模式
BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。
BOOT1=0 BOOT0=1 从系统存储器启动,这种模式启动的程序功能由厂家设置。
BOOT1=1 BOOT0=1 从内置SRAM启动,这种模式可以用于调试。
所以烧录的时候,BOOT0需要置一,烧录完后如果想打开串口助手查看程序运行需要把BOOT0置零,回归正常工作状态

4.3结果展示

流水灯

总结

``
1.cubeMX的初始化选项较多需注意
2.调制代码是,要设置debug选项
3.在选择要观察的引脚时,可以简写输入为PORTX.N,(X表示A…E,N表示0…15)

参考链接

1.https://blog.csdn.net/qq_55691662/article/details/120923869
2.https://blog.csdn.net/qq_55691662/article/details/120923869
3.https://blog.csdn.net/weixin_46129506/article/details/120780184
4.https://blog.csdn.net/weixin_45770271/article/details/105326923

<think>嗯,用户想知道如何使用STM32CubeMX进行系统初始化设计。首先,我需要回忆一下STM32CubeMX的基本功能,它是一个图形化配置工具,帮助生成初始化代码。用户可能是个刚开始接触STM32的开发者,需要一步步的指导。 首先,我应该从安装开始,因为如果用户还没安装,后面的步骤都无从谈起。根据引用[2],安装后需要打开软件,可能还需要安装固件包。这里要注意,用户可能遇到固件包安装的问题,比如网络问题或者本地导入的问题。引用[3]提到可能需要手动导入固件包,尤其是版本升级时的补充包,所以需要详细说明步骤。 接下来是创建新工程的步骤。用户需要选择正确的MCU型号,这一步很重要,选错型号会导致后续配置不匹配。然后配置时钟树,这里可能需要解释HSE和LSE的作用,以及如何通过图形界面调整频率。时钟配置对系统性能影响很大,所以用户需要谨慎处理。 然后是外设的配置,比如GPIO、USART、SPI等。这部分需要根据用户的具体需求来设置,但作为教程,可能需要举几个常见的例子,比如配置LED的GPIO为输出模式,或者设置USART的参数。同时,要提醒用户注意引脚冲突,STM32CubeMX会自动检测,但最好还是手动检查一下。 生成代码的部分需要说明各个选项的作用,比如IDE的选择,生成的代码结构。用户可能对每个文件的作用不太清楚,所以需要简要解释。例如,main.c中的SystemClock_Config函数是自动生成的,用户不需要手动修改,但可以查看。 最后,测试和验证部分,用户可能需要知道如何将代码下载到开发板,并进行简单的测试,比如点亮LED或者发送串口数据。这部分需要强调实际操作的步骤,以及可能出现的问题。 整个过程中,需要确保LaTeX格式正确,数学表达式用$...$,独立公式用$$...$$,但在这个问题中可能涉及较少数学内容。另外,生成的相关问题要针对STM32CubeMX的常见疑问,比如固件包管理、外设配置技巧、错误处理等,帮助用户深入学习和解决问题。 检查引用是否正确,引用[1]是STM32CubeMX的介绍,引用[2]和[3]涉及安装和固件包管理。确保步骤清晰,逻辑连贯,用户能够按照教程一步步完成系统初始化配置。</think>### STM32CubeMX系统初始化配置教程 #### 一、软件安装与固件包管理 1. **安装STM32CubeMX** 从ST官网下载安装包,完成基础安装[^2]。 2. **导入固件包** - 方法一:通过菜单栏 `Help -> Manage Embedded Software Packages` 在线下载所需MCU系列固件包(如STM32F1/F4等) - 方法二:若网络受限,需将本地固件包(如`stm32cube_fw_f1_v180.zip`和`stm32cube_fw_f1_v183.zip`)复制到软件仓库目录,确保版本兼容性[^3] #### 二、新建工程步骤 1. **创建项目** 点击 `File -> New Project`,选择MCU型号(如STM32F103C8T6)或开发板型号。 2. **系统核心配置** - **时钟源(Clock Configuration)** 在 `Pinout & Configuration -> System Core -> RCC` 中配置: - HSE(高速外部时钟):选择晶振类型(如Crystal/Ceramic Resonator) - LSE(低速外部时钟):用于RTC等低功耗模块 - **调试接口(SYS)** 选择调试模式(如SWD或JTAG)以支持烧录和调试。 #### 三、时钟树配置 1. 进入 `Clock Configuration` 标签页 2. 通过图形化界面设置: - 输入时钟源频率(如8MHz外部晶振) - 使用PLL倍频实现目标系统时钟(如72MHz) - 自动生成公式: $$ SYSCLK = \frac{(HSE\_VAL \times PLLMUL)}{PLLDIV} $$ #### 四、外设配置示例(GPIO/USART) 1. **GPIO设置** - 点击MCU引脚图选择功能(如PC13设置为GPIO_Output) - 在 `System Core -> GPIO` 中配置模式(推挽输出)、上下拉和速率 2. **USART配置** - 启用USART1,选择异步模式 - 设置波特率(如115200)、数据位、停止位和校验位 - 自动计算分频系数公式: $$ USARTDIV = \frac{f_{CK}}{16 \times BaudRate} $$ #### 五、生成代码 1. **项目设置** - 进入 `Project Manager` - 选择IDE(如MDK-ARMSTM32CubeIDE) - 设置代码生成选项:勾选 `Generate peripheral initialization as a pair of .c/.h files` 2. **生成代码** 点击 `GENERATE CODE`,系统将生成包含以下关键文件的工程: - `main.c`:主函数与硬件初始化代码 - `stm32f1xx_hal_msp.c`:外设底层配置 - `stm32f1xx_it.c`:中断服务函数 #### 六、测试与验证 1. 在生成的`main.c`中编写用户代码(如LED闪烁逻辑) 2. 编译并下载到开发板 3. 使用示波器或串口助手验证时钟频率和通信功能 ```c // 示例代码片段(GPIO控制) HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); HAL_Delay(500); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值