OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5997|回复: 3

stm32 hal库的外部中断及hal_delay问题

[复制链接]

6

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-3-3
在线时间
15 小时
发表于 2016-4-24 15:54:41 | 显示全部楼层 |阅读模式
1金钱
本人写了一个程序,正在用HAL库的外部中断,但是进入中断后就出不来了,不知道HAL库是如何清除终端标志位的,及跳出中断的。
还有在中断里的hal_delay不好使,并不知道是什么原因,还请大家解答一下。


int main()
{
    HAL_Init();
    SystemClock_Config();
    gpio_init();
   
    HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
    HAL_NVIC_SetPriority(EXTI15_10_IRQn,0,4);
    HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
    while(1)
          {
             HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);
             HAL_Delay(delay);
            HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);
            HAL_Delay(delay);
          }
}
void EXTI15_10_IRQHandler()
      {
            delay=336;
      }

最佳答案

查看完整内容[请看2#楼]

使用HAL库的时候一定不能在 中断里面调用HAL_Delay(),切记!因为HAL库中的HAL_Delay()是靠滴答定时器中断来完成的,而且滴答定时器的中断优先级是最低的。如果你在 某一个其他中断调用HAL_Delay()的话肯定会死到延时这里的,因为滴答定时器的中断被高优先级的给干死了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2016-4-24 15:54:42 | 显示全部楼层
使用HAL库的时候一定不能在 中断里面调用HAL_Delay(),切记!因为HAL库中的HAL_Delay()是靠滴答定时器中断来完成的,而且滴答定时器的中断优先级是最低的。如果你在 某一个其他中断调用HAL_Delay()的话肯定会死到延时这里的,因为滴答定时器的中断被高优先级的给干死了。
回复

使用道具 举报

6

主题

19

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2017-7-6
在线时间
27 小时
发表于 2019-7-11 15:51:18 | 显示全部楼层
zuozhongkai 发表于 2016-4-24 15:54
使用HAL库的时候一定不能在 中断里面调用HAL_Delay(),切记!因为HAL库中的HAL_Delay()是靠滴答定时器中断来 ...

为什么用开放板 提供的 Delay() 函数,不会出现这样的问题。 本质上 不是都用了滴答定时器?

没有使用中断是吧?就不会有中断优先级的问题?
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2019-9-6
在线时间
3 小时
发表于 2021-1-16 16:23:10 | 显示全部楼层
夏清 发表于 2019-7-11 15:51
为什么用开放板 提供的 Delay() 函数,不会出现这样的问题。 本质上 不是都用了滴答定时器?

没有使用 ...

原子提供的Delay()函数没有使用中断,只是在递减计数器到零的时候查询,原理其实是一样的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-3-1 01:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表