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