由于上篇文章说明了配置时钟和GPIO相应引脚的配置,此处将不再赘述
一、观看中文手册里外部中断通用I/O映像 ? ?查看中断线和GPIO引脚的连接方式
?
二、进行外部功能的配置 ? 把PA0设置成外部中断的模式(GPIO_EXTI0) ? 把设置的中断打开并把他的优先级调低一些(避免与上面的系统中断冲突)
? 然后到GPIO选项卡配置,设置成上升沿和下升沿均可触发和下拉输入,最后生成代码
??
三、编写代码 ? 先写出不断闪烁的LED程序
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);
? HAL_Delay(500);
? HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);
? HAL_Delay(500);
? 然后编写有关中断服务程序 ? 然后在main函数上编写外部中断函数 (由于这个函数为弱函数,故我们对HAL种定义的弱函数进行重写,则在对应事件发生是我们所写的函数就会被调用)
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
? {
? ? ? ? ?内容
? }
? 然后接着编写内容
if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==GPIO_PIN_RESET)
? {
? ?HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);
? }
? else if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==GPIO_PIN_SET)
? {
? ?HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);?? ?
? }
四、最后编译,下载程序?? ?
|