题目要求:用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。
一。中断
概念
作用
优先级
二。项目
1.创建项目
选择stm32f103c8开发板
2.PB6为中断模式 GPIO_EXIT6
PA6选择为输出 GPIO_Output
3.引脚设置
A6设置:将GPIO output level设置为High
PB6设置如下:
NVIC设置:
RCC设置:
SYS设置:
时钟树配置:
项目设置:
随后点击generate code创建open project
三。代码
中断
我们需要在main.c中添加代码
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){
GPIO_PinState b6_pin = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6); // 读取b6的状态
switch (GPIO_Pin){
case GPIO_PIN_6:
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, b6_pin); // 将a6写入与b6相同的电位
break;
}
}
随后编译hex文件,进行烧录。
LED长脚——3V3
LED短脚——PB6
PA6——3V3——亮灯
PA6——GND——熄灯