你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于HAL_Delay问题

[复制链接]
hithfy 提问时间:2015-9-8 15:10 /
1.在一个简单的按键试验中,我在xxit.c的EXTI2_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函数的延时是怎么计算的,麻烦详解,感激不尽!
收藏 评论15 发布时间:2015-9-8 15:10

举报

15个回答
wuzhujian 回答时间:2015-9-8 15:15:57
楼主,你是新手吧?

中断里面延时,新手才这么干的。
HAL_Delay()函数,是在systick中断中改变计数值。你的EXTI2_IRQHandler()中断 处理函数不退出,估计systick中断也不一定会执行得到,所以.......


hithfy 回答时间:2015-9-8 15:26:17
wuzhujian 发表于 2015-9-8 15:15
楼主,你是新手吧?

中断里面延时,新手才这么干的。

嘿嘿,新手哈,但是我是在另外一个源文件定义的KEY_BUZ_LED()啊,是不是在中断里面调用到的所有函数都不能有这个HAL_Delay
hithfy 回答时间:2015-9-8 15:28:08
wuzhujian 发表于 2015-9-8 15:15
楼主,你是新手吧?

中断里面延时,新手才这么干的。

我感觉也是这样的,但是就是不确定,所以献丑了哈。
数码小叶 回答时间:2015-9-8 17:28:14
wuzhujian 发表于 2015-9-8 15:15
楼主,你是新手吧?

中断里面延时,新手才这么干的。

他这逻辑应该没啥问题吧,滴答定时器和外部中断不冲突啊
数码小叶 回答时间:2015-9-8 17:28:34
我觉得你的EXTI2配置有问题。。。
hithfy 回答时间:2015-9-8 21:32:02
数码小叶 发表于 2015-9-8 17:28
我觉得你的EXTI2配置有问题。。。

但是我使用自定义的那个延时函数时,就是没有问题,麻烦你详解哈
chifen 回答时间:2015-9-8 22:27:13
同样都是定时中断, 要看谁的级别高,如果滴答定时器低于当前级别,会死里不出来了
hithfy 回答时间:2015-9-8 22:31:53
chifen 发表于 2015-9-8 22:27
同样都是定时中断, 要看谁的级别高,如果滴答定时器低于当前级别,会死里不出来了 ...

恩,我查了哈我的滴答时钟抢占和响应优先级均设置为0,0(应该最高了),就是一直没能查到EXTI2这个中断是个什么优先级啊!
mark0668 回答时间:2015-9-8 22:34:04
你的中断高于定时的中断优先级.
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版