打印
[STM32F1]

请问 调试时中断标志不能清零是怎么回事?

[复制链接]
2423|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
M.gtd|  楼主 | 2016-4-18 16:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  定时器1 uptdate 事件触发ad 转换,
调试跟踪到TIM_ClearFlag(TIM1, TIM_FLAG_Update);
     ADC_ClearFlag(ADC1, ADC_IT_JEOC);
单步执行,观察寄存器TIM_SR和AD1_SR值不清零是什么情况?

另外怎么结贴啊,每次都是分数分配错误。谢谢!
沙发
M.gtd|  楼主 | 2016-4-18 16:42 | 只看该作者
本帖最后由 M.gtd 于 2016-4-18 16:44 编辑

事件与中断不同,事件 是被硬件自动清零的,所以不用管事件标志位
TIMx_EGR  寄存器中说明
Bit 0 UG: Update generation
This bit can be set by software, it is automatically cleared by hardware.

不明白ADC_IT_JEOC为什么不清零

使用特权

评论回复
板凳
Roderman_z| | 2016-4-18 22:11 | 只看该作者
M.gtd 发表于 2016-4-18 16:42
事件与中断不同,事件 是被硬件自动清零的,所以不用管事件标志位
TIMx_EGR  寄存器中说明
Bit 0 UG: Upda ...

这个ADC_IT_JEOC标志没什么意义吧

使用特权

评论回复
地板
M.gtd|  楼主 | 2016-4-19 08:25 | 只看该作者
Roderman_z 发表于 2016-4-18 22:11
这个ADC_IT_JEOC标志没什么意义吧

注入转换结束标志位,如果置位会一直触发中断

使用特权

评论回复
5
M.gtd|  楼主 | 2016-4-19 09:14 | 只看该作者
ADC_ClearFlag(ADC1, ADC_IT_JEOC);这个函数调用有问题,清flag,实际输入的参数是中断。
应该ADC_ClearITPendingBit(ADC1, ADC_IT_JEOC);
但是,仍然不能把ADC_IT_JEOC位清零??

使用特权

评论回复
6
M.gtd|  楼主 | 2016-4-20 09:25 | 只看该作者
iar 调试状态register中看不到JEOC的变化,但程序正常,不纠结了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

120

帖子

3

粉丝