中断及串口通信进阶——一
1、要求
用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。
①创建Project
打开keil5,选择STM32F103C8芯片,并且设置引脚
再将引脚PB1命名ZDUAN,并设置触发方式选择下降沿触发 ,选择上拉电阻
然后将引脚PA5命名为R
然后点击NVIC
设置中断优先级
然后,设置时钟
然后,修改名称和IDE
然后生成。
②烧录程序
将下面的代码放入main.c中的USER CODE 4里面
/*
* @brief EXTI line detection callbacks.
* @param GPIO_Pin: Specifies the pins connected EXTI line,
* @retval None
*/
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if( GPIO_Pin == ZDUAN_Pin )
{
HAL_GPIO_TogglePin(R_GPIO_Port, R_Pin);
}
}
如下图所示
编译,生成hex文件。
打开mcuisp,载入文件,开始烧录
将BOOT0置0,BOOT1置1,点击开始,按下复位按钮,收到如下反馈
将BOOT0置1,BOOT1置1,按下复位按钮;
灯亮,将引脚PB1接地(低电平),灯灭。