实现功能:(1)LD2闪烁 ;(2)按键变换闪烁频率,闪烁频率分别为5HZ,1HZ;对应延时分别为100ms,500ms。
步骤:
1. 将PC13配置为外部中断功能
2. 配置GPIO具体参数,下降沿触发(按键按下时),不使用触发功能
3. 开启外部中断功能
4.生成工程文件
5. 完善代码
(1)全局变量声明
(2)LED 闪烁
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
HAL_Delay(nDelay); //ms级延时
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
HAL_Delay(nDelay);
}
/* USER CODE END 3 */
(3)按键中断函数
/* USER CODE BEGIN 4 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(nDelay == 500)
nDelay=100;
else
nDelay=500;
}
/* USER CODE END 4 */
说明:
按键中断函数查找路径位于:stm32f0xx_it.c ------void EXTI4_15_IRQHandler(void)-----HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13)-----
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
{
/* EXTI line interrupt detected */
if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET)
{
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
HAL_GPIO_EXTI_Callback(GPIO_Pin);
}
}
注意__weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
/* NOTE: This function should not be modified, when the callback is needed,
the HAL_GPIO_EXTI_Callback could be implemented in the user file
*/
}