1.在一个简单的按键试验中,我在xxit.c的EX
ti2_IRQHandler中调用了一个函数KEY_BUZ_LED():
void KEY_BUZ_LED(void)
{
/****************************************************************/
HAL_GPIO_WritePin ( GPIOD, GPIO_PIN_1, GPIO_PIN_RESET);//低有效
HAL_GPIO_WritePin ( GPIOD, GPIO_PIN_3, GPIO_PIN_RESET);//低有效
// H_delayMS(250000); //自定义延时函数
HAL_Delay(300);
HAL_GPIO_WritePin ( GPIOD, GPIO_PIN_1, GPIO_PIN_SET);
HAL_GPIO_WritePin ( GPIOD, GPIO_PIN_3, GPIO_PIN_SET);
/***************************************************************/
}
但是我按下按键后,能按下降沿正常进入EXTI2_IRQHandler里面的HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2)函数,但是接下来执行KEY_BUZ_LED()时一直卡在了 HAL_Delay(300),此时单步执行也无效了。
后来我就使用了自定义的延时函数 H_delayMS(),发现正常实现按键后蜂鸣器和LED的响、亮。
请问,各位大侠,这是什么情况?还有就是HAL_Delay函数的延时是怎么计算的,麻烦详解,感激不尽!
我感觉也是这样的,但是就是不确定,所以献丑了哈。
他这逻辑应该没啥问题吧,滴答定时器和外部中断不冲突啊
但是我使用自定义的那个延时函数时,就是没有问题,麻烦你详解哈
一周热门 更多>