嵌入式学习小组
直播中

王树林

7年用户 1642经验值
私信 关注

I2C通信影响串口中断怎么解决?

使用新唐ML51PCOAE的硬件i2c通信时(发送起始位用语句set_I2C0CON_STA; ),影响串口中断,请高手指导一下。

回帖(1)

张涛

2024-1-17 17:13:46
可能的原因是I2C通信和串口使用了相同的中断向量或者优先级冲突了。您可以尝试以下几种方法来解决这个问题:

1. 调整中断优先级:根据数据表中的描述,I2C中断的优先级为3,串口中断的优先级为2。您可以尝试将I2C中断的优先级设置为低于2,或者将串口中断的优先级设置为高于3。

2. 关闭I2C中断:如果您不需要I2C通信时,可以考虑关闭I2C中断,并在需要使用时再打开。这样可以避免I2C中断和串口中断的冲突。

3. 使用DMA传输:如果您需要大量的数据传输,可以考虑使用DMA传输来代替中断传输。这样可以避免中断的竞争,并提高效率。

4. 增加延时:如果您的程序在I2C通信和串口中断之间频繁切换,可以考虑增加一些延时,让两个中断有足够的时间执行完成。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分