OpenEdv-开源电子网

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

f0 c8t6定时器中断无法打断外部中断

[复制链接]

6

主题

26

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2017-7-26
在线时间
15 小时
发表于 2017-10-20 14:28:48 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 非凡哥 于 2017-10-20 15:59 编辑

低优先级的外部中断(2)无法被高优先级的定时器中断(0)打断;确保定时器可用,在外部中断里读取tim17的count,可以看到值的变化和清零的过程,但是更新时却不能进入中断。于是我注释了外部中断的函数,仿真时就可以看到每过10ms进入tim17的中断了。两者单独运行都没问题;求助求助!!help!sos!

time17.png
中断配置.png
tim17配置.png
17中断服务函数.png
颜色识别外部中断.png

最佳答案

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

问题找到了!!在f030c8t6里调用NVIC_EnableIRQ(EXTI4_15_IRQn);会导致外部中断的优先级被设置为0!!! 两者优先级相同,那时钟中断就不能打断外部中断了,恰巧外部中断是一直被触发着的,tcs230脉冲持续发送; 测试出来的,不知道对不对。@原子哥
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

26

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2017-7-26
在线时间
15 小时
 楼主| 发表于 2017-10-20 14:28:49 | 显示全部楼层
问题找到了!!在f030c8t6里调用NVIC_EnableIRQ(EXTI4_15_IRQn);会导致外部中断的优先级被设置为0!!!
两者优先级相同,那时钟中断就不能打断外部中断了,恰巧外部中断是一直被触发着的,tcs230脉冲持续发送;
测试出来的,不知道对不对。@原子哥
回复

使用道具 举报

6

主题

26

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2017-7-26
在线时间
15 小时
 楼主| 发表于 2017-10-20 18:31:26 | 显示全部楼层
不过在f1中使用函数NVIC_EnableIRQ(EXTI4_15_IRQn);不存在优先级被重置的问题
回复

使用道具 举报

6

主题

26

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2017-7-26
在线时间
15 小时
 楼主| 发表于 2017-10-23 10:37:23 | 显示全部楼层
沉了,我就自问自答吧
回复

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2018-6-13
在线时间
15 小时
发表于 2018-6-29 17:59:23 | 显示全部楼层
非凡哥 发表于 2017-10-20 14:28
问题找到了!!在f030c8t6里调用NVIC_EnableIRQ(EXTI4_15_IRQn);会导致外部中断的优先级被设置为0!!!
两者 ...

楼主, HAL_NVIC_EnableIRQ(EXTI4_15_IRQn)函数不是CubeMX初始化会自己调用吗?楼主你是怎么解决的啊?
我开外部中断,进中断后读取定时器的计数值(同时需要保证定时器溢出更新正常),程序调试结果发现得到的两次定时器的时间之差错误,
楼楼,是我的外中断影响到定时器了吗
求回复
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-26 11:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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