2020-04-22 wb_exti

                                wb_exti

1) 在wb_ledblink设置基础上

Pinout View 

PB13->GPIO_EXTI13

Categories->GPIO->GPIO->GPIO mode->External Interrupt Mode with Falling Edge(我的编码器小板按键输出下降沿)

NVIC

勾选 EXTI line[15:10] interrupts 

2) SAVE,generate Code

3) main.c

检查void MX_GPIO_Init(void)函数

看看GPIO_InitStruct.Mode 设置管脚的工作方式:

/** Configure pins as :         * Analog /  * Input/   * Output / * EVENT_OUT/   * EXTI  */

/*Configure GPIO pin : PB13 */  GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;

另外在函数结尾处可看到EXTI中断已经使能: HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);

在stm32f103xb.h里有中断号列表:


4) 建立中断服务程序 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)

在main外面

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
    if(GPIO_Pin == GPIO_PIN_13)
     HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_12);
}

5)编译运行 

编译运行,PB13接开关,每按下一次,板载LED toggle一次

你可能感兴趣的:(2020-04-22 wb_exti)