I2C和中断

时间:2018-06-15 15:48:46

标签: arduino microcontroller

我正在使用SparkFun ESP32 Thing模块和使用MPU9255 Waveshare IMU制作四轴飞行器。

看起来当我从RC接收器读取带有中断的PWM信号(6个通道有6个中断)时,I2C会在一段时间后失效。我在MPU9250上使用中断(但不是DMP模块,只是同步加速度和陀螺仪数据)。我不确定连接是否失败,MPU9250或ESP32。 它看起来像这样: 10-50秒后,MPU9250发生故障,MPU中断工作在8kHz(而不是1.6kHz),值不会改变。 不知道发生了什么事; /任何人? 没有中断,I2C工作正常......

1 个答案:

答案 0 :(得分:0)

您的ISR必须保存并恢复使用的所有寄存器和标志。如果您从ISR调用任何外部函数,则可能存在重入问题。如果不看代码,那就是我能提供的最好的代码。