CH32V203C8T6使用外部中断时疑似偶尔产生误触发。

我想通过在每一次的外部中断(双边沿触发)中记录TIM的计数值然后清零计数值的方法,来获得两次边沿中断的时间差并以此计算脉冲宽度和波特率。但是实测时发现偶尔会有两次中断的时间间隔极小(正常是1250的时候有时候会产生三四百甚至一两百的数值)。请问这是为什么?


image.png

image.png

按理说应该每一个数据都应该是12xx的整数倍才对,但是产生了部分很小的数据。


应该就是误触发,但是始终无法根绝。


您好,该问题可从信号源(可具体查看一下信号源波形)、程序处理(高低电平与脉宽判断)、外部干扰3个方面去考虑一下问题。此处若要计算波形的脉宽等,建议你用PWM输入模式或输入捕获模式,相对于你这种外部中断的方式更好一些,程序也简单。在CH32V203 EVT中也有对应的例程,你可以参考一下。下面链接为CH32V203 EVT下载链接:

/downloads/CH32V20xEVT_ZIP.html

image.png



只有登录才能回复,可以选择微信账号登录