(一)搭建STM32开发环境
(1)安装jdk
由于STM32CubeMX是Java实现的,需要安装jdk环境。
jdk官网下载链接:
https://www.oracle.com/java/technologies/javase-downloads.html
(2)安装STM32CubeMX
1.下载地址:
https://www.st.com/en/development-tools/stm32cubemx.html
2.安装过程:
-
点击Get Software 下载安装包
-
选择STM32CubeMX 的版本
-
以管理员身份运行并安装 SetupSTM32CubeMX-6.8.0-Win.exe ,进入下面这个界面后,点击Next。
-
点击"I accept the terms of this license agreement",接着选择Next。
-
选择Next
-
点击Done就完成安装。
(2)安装固件库
1.在ST官网获取stm32Cube包
2.运行CubeMX ,选择 Help->Magne 安装固件库
3.点击from local,找到刚才下载的固件库压缩包,再点击打开,这就完成了固件库的安装。
(二)使用CubeMX生成相关代码
(1)创建新项目,配置项目参数
1.新建File->Project
2.选择芯片STM32F103C8
3.选择.sys,将Debug调成Serial Wire
4.RCC选择
5.选择端口输出设置,选择需要的端口,点击设置GPIO_OUTPUT,我选择的是PA0,PA1,PA2
6.Clock Configuration设置
7.Project Manager设置
最后点击右上角的GENERATE CODE 就创建完成了,找到创建项目的文件夹,找到.uvprojx文件并打开。
(2)在keil中进行仿真调试
1.打开LED.uvprojx 文件
2.将下列代码插入到main函数的while循环中
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET); // 灯1亮
HAL_Delay(1000); // 延时1s
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET); // 灯1灭
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET); // 灯2亮
HAL_Delay(1000); // 延时1s
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET); // 灯2灭
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_RESET); // 灯3亮
HAL_Delay(1000); // 延时1s
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_SET); // 灯3灭
3.点击编译,生成hex文件。
4.连接电路如图所示
5.将生成的hex文件通过FlyMcu软件烧写到最小系统板上
6.查看运行结果
VID_20231020_204722
(三)使用仿真逻辑分析仪功能观察管脚的时序波形
1.点击魔法棒,配置debug
2.点击debug调试运行
3.点击setup,设置端口PA0、PA1、PA2的地址,设置Dispaly Type 为Bit
4.查看仿真结果
5.总结
由结果可以得出,PA0(蓝色)为低电平时(亮灯)时其他两个口的电平都为高电平。PA0、PA1、PA2分别为蓝色,黑色、红色,时序状态正确,高低电平转换周期(LED闪烁周期)实际为多少1秒。