目录
一、使用CubeMX生成代码
打开CubeMX,点击ACCESS TO MCU SELECTOR创建新项目
在Part Number处选择芯片,我这里用的是STM32F103C8T6,所以选择的是STM32F103C8,选择芯片之后再点击Start Project
点击System Core,点击RCC,按照如下选择
点击SYS,Debug选择Serial Wire
点击GPIO设置管脚,我设置的是开关接PA1管脚,LED接PB5管脚,PA1选择GPIO_EXTI1,PB5选择GPIO_Output
PA1按如下设置
PB5按如下设置
点击NVIC,勾上Enabled
点击Clock Configuration,按照如下设置
点击Project Manager,设置名称路径,修改设置如下,然后点击GENERATE CODE,生成工程
二、代码补充
打开生成的工程文件
在main.c文件中添加回调函数代码,在/* USER CODE BEGIN 0 */和/* USER CODE END 0 */之间添加如下代码
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
/* Prevent unused argument(s) compilation warning */
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);
/* NOTE: This function Should not be modified, when the callback is needed,
the HAL_GPIO_EXTI_Callback could be implemented in the user file
*/
}
编译生成.hex文件
三、 LED点亮点灭
连接电路,BOOT0置1
连接电路如下所示,灯泡正极、负极接3.3v、B5,A1作为开关
烧录程序
烧录完成后,BOOT0置0,并按下复位键,具体实现如下
可以看到,当PA1连接灯泡负极时,频闪的LED灯变为常亮,当PA1连接灯泡正极时,频闪的LED灯熄灭