能否清除中断?

您好! 我的设计是这样的: 我采用的是ch375的从模式来进行pc机与单片机的通讯。 我先是采用查询的方式,处理pc机与单片机的usb通讯, 当单片机接收到某个命令时,打开单片机中断,换用中断方式处理pc机与单片机的通讯 在打开中断前,我想先清除当前通讯产生的中断,等待某一命令 请问:怎么清除中断呢? 我试着执行了一次UNLOCK_USB命令,可是当中断打开后,仍要产生一次发送“0”个数据的中断!请问有其他方法吗?

我就是想清除其他中断的干扰,等待某个特定命令时才产生中断。


首先,UNLOCK命令是不能多执行也不能少执行的,你如果在你下传中断之后在解锁的话(也就是执行了RD-DATA这个命令,就会出问题,因为这个命令本来就有问题),还有就是你说的清除中断是不是进了中断都不处理还是什么意思?USB传输是一种可靠性传输,所以不会出现在你用中断方式的时候还会出现发送数据的中断,这肯定是你的程序上面没有处理好


恩,我想在打开中断前,做些设置(因为打开前,已经使usb中断引脚变低,产生中断的条件了),使打开中断后,没有中断产生。 请问,怎么设置呢


这个应该不会的,因为我们的375芯片产生中断之后,你如果不发GET-STATUS命令的话,中断脚是不会变成高电平的,会一直为低电平,你仔细检查下你的程序,是不是在INT#脚为低电平的时候读取了中断状态


哦,在我打开中断前有很多产生中断的条件,那么我想要清除的话,就要执行很多的GET-STATUS命令了。 关于UNLOCK命令是不能多执行也不能少执行的,我理解这是对于处理有用的中断而言的吧,而我的这些中断是没有用处的,所以我多执行了UNLOCK命令,这样原先的很多中断,就变成了一个中断了,而且数据长度是“0”,就没有别的方法了吗


你可以这样做,在你需要的中断状态里面进行你要进行的操作,在不需要的中断状态的时候你可以获取了中断状态之后在解锁就可以了(或者这样,和你需要执行的中断状态不一样的中断状态直接解锁就可以了)


哦,好的,谢谢


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