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

STM32 串口通讯会对外部中断(或定时器)有影响???

[复制链接]
erix809816794 提问时间:2014-10-10 23:19 /
在做一个项目,用STM32 的外部中断检测脉冲信号,在外部中断里,分别记录脉冲开始和结束时定时器(TIM3)的计数值,计算这两个计数值的差CntDiff,即得到脉冲的宽度。
这样测量在开始是可以的,测量结果也比较稳定。但当我加入USART3串口通信功能后,问题来了:如果频繁的进行串口数据收发,发现会对上述计数差值CntDiff有影响,在脉冲信号不变的情况下,通信越频繁,CntDiff的值有越大的趋势。 
 
中断优先级配置情况是
外部中断:         抢先优先级=0, 副优先级=0, 用于检测脉冲信号
TIM2中断:        抢先优先级=1, 副优先级=0, 用于系统定时
USART3中断:  抢先优先级=2, 副优先级=0, 用于串口通信
 
TIM3:                 不产生中断,仅使用其计数值。
 
请教各位,这可能是什么问题导致的?如何分析?谢谢!!
 
收藏 评论6 发布时间:2014-10-10 23:19

举报

6个回答
废鱼 回答时间:2014-10-11 08:53:10

RE:STM32 串口通讯会对外部中断(或定时器)有影响???

中断被打断,建议把TIM3的中断也开启。另外USART3中不要有太多的处理,只写接收和清除对应标志位代码就可以了。
erix809816794 回答时间:2014-10-11 11:11:07

回复:STM32 串口通讯会对外部中断(或定时器)有影响???

回复第 2 楼 于2014-10-11 08:53:10发表:
中断被打断,建议把TIM3的中断也开启。另外USART3中不要有太多的处理,只写接收和清除对应标志位代码就可以了。
 
继续请教一下,为什么要把TIM3中断也打开?
现在USART3中本来就没有多少处理,就是仅仅接收和发送数据....
 
废鱼 回答时间:2014-10-11 11:33:39

RE:STM32 串口通讯会对外部中断(或定时器)有影响???

TIM3打开,我建议用一个类似滴答时钟做处理。不要用寄存器本身的计数值,因为你串口中断处理的数据太多的时候,会丢掉TIM3的值。
erix809816794 回答时间:2014-10-11 12:26:02

回复:STM32 串口通讯会对外部中断(或定时器)有影响???

回复第 4 楼 于2014-10-11 11:33:39发表:
TIM3打开,我建议用一个类似滴答时钟做处理。不要用寄存器本身的计数值,因为你串口中断处理的数据太多的时候,会丢掉TIM3的值。 

可否具体一些,没理解。
滴答时钟你指的是SysTick时钟吗? 还有,用TIM3寄存器本身的计数值为什么会丢掉??
废鱼 回答时间:2014-10-11 14:03:38

RE:STM32 串口通讯会对外部中断(或定时器)有影响???

他本身的值是在增加,当基础以后会重新计数。就是SysTick。
爱艳子 回答时间:2014-10-29 08:15:17
受教了。。。。。。。。。。。。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版