一、准备
原理图
芯片型号为STM32G431RBT6

软件坏境
STM32CubeMX、keil5须下载该系列芯片包。
二、原理
板子上共有8个LED灯。
PC8 | LED1 |
PC9 | LED2 |
PC10 | LED3 |
PC11 | LED4 |
PC12 | LED5 |
PC13 | LED6 |
PC14 | LED7 |
PC15 | LED8 |
LED经74HC573锁存器控制。

想点亮LED,首先先让PC8-15输出电平,然后让PD2为高电平,再让PD2为低电平,这样PC8-15的电平状态就会被保存。
三、CubeMX配置
选择芯片型号


设置SWD(Serial Wire Debug)

外部高速时钟

时钟树
设置最大频率然后选择可行的方案。
如果进行到后面的步骤发现下载后板子没反应,可重新执行这一步再尝试编译下载。

LED引脚
使能PD2为output模式,控制74HC573。这里用PC8举例,使能PC8为output模式,控制LED1,其余LED同理。

选择生成独立的“.c”和".h"文件

创建工程
工程名和路径不能有中文。IDE选择MDK-ARM(keil5)。最后点击GENERATE CODE生成代码。

四、keil设置
调试器
选择CMSIS-DAP Debugger调试器,然后点击Setings。

在Setting下,选择SW模式

在Flash Download选项卡下,勾选Reset and Run

配置完成后,即可直接使用keil自带的下载与调试功能

五、下载测试
在主函数while写入如下程序进行测试,最终观测到LED1快速闪烁说明成功。
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_8);//反转PC8的电平
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);//打开锁存器
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);//关闭锁存器
HAL_Delay(100);
如果编译下载后板子无反应,可重新执行时钟树的配置再尝试。
每次更改CubeMX的设置后都需要重新生成一次代码才会生效。