欢迎光临散文网 会员登陆 & 注册

IIC屏幕和IIC传感器使用心得

2022-04-19 17:31 作者:云汉含星  | 我要投稿

以下都是菜鸡自己的一些感想心得,有错误或者需要改进的地方请大佬指教

有需要IIC的传感器一直高频获取数据的话,最好不要使用IIC屏幕。

    IIC是可以多从机通信的。于是可以一组IIC线连接多个设备。于是我使用IIC屏幕和MPU6050两个设备作为从设备,ESP32作为主设备。但是问题出现了,IIC屏幕在显示的时候总是回出现混乱。甚至会直接导致程序跑飞,芯片重启。

一次成功的IIC通信一般来说是这样子的:

        写设备地址 -- 写寄存器地址 --  读/写 寄存器

    一次完整的通信是不可以被打断的,否则会导致此次的通信失败。但是不幸的是,使用的IIC屏幕库似乎没有对这一方面做出限制。IIC屏幕刷新的过程中仍然会被mpu6050的读写程序中断。这就导致了屏幕错乱的出现。

    我尝试使用多种方法解决,但是都没有起到很好的效果。

    我尝试使用临界区作为保护,但是IIC屏幕写入时间实在是太长了,导致临界区总是超时。我也尝试使用标志位来错开程序运行时间,但是仍然没有用。当我把IIC屏幕刷新间隔和mpu6050的读取时间间隔都上调至100ms时,这个问题得到了很大的缓解,显示基本是正确的。我尝试讲IIC通信频率拉高,但是从默认的400KHz只能拉到800KHz,结果没有一点点的改善。。。

    于是最终,我悟到了。使用IIC屏幕和需要高频读取的IIC传感器,是一个非常不正确的选择。使用SPI的屏幕应该会解决这些问题。所以我直接砍掉了运行时的IIC屏幕刷新。



IIC屏幕和IIC传感器使用心得的评论 (共 条)

分享到微博请遵守国家法律