FireBeetle 的 OLED12864 显示屏和其他I2C 设备的兼容问题。

2021-10-117373
AI 快速预览详细 收起
本文介绍了在 FireBeetle 上使用 OLED12864 显示屏和语音合成模块时遇到的兼容问题。具体表现为当两者同时工作时,语音合成模块无法正常运行,并显示错误“ERR_DATA_BUS”。经过研究发现,OLED12864 库中重新定义了 I2C 速度为 700K,而默认情况下 I2C 工作频率为 400K。通过去掉 OLED12864 库中的 Wire.setClock(700000) 代码行,可以恢复默认的 I2C 速度 400K,从而解决问题。这一解决方案帮助用户省去了自行排查的时间成本。
最近尝试在 FiireBeetle 上使用OLED12864 和语音合成模块,但是发现二者独立工作都没有问题,

但是如果放在一起时,语音合成模块无法工作,显示错误为“DBG("ERR_DATA_BUS");”。

经过研究发现,OLED12864 库中\DFRobot_OLED12864-master\SSD1306Wire.h 文件有重新定义 I2C 速度为 700K,而默认情况下 I2C 工作频率为 400K

        bool connect() {
                Wire.begin();
                // Let's use ~700khz if ESP8266 is in 160Mhz mode
                // this will be limited to ~400khz if the ESP8266 in 80Mhz mode.
                Wire.setClock(700000);
                return true;
        }


所以,如果你遇到这样的问题不妨去掉上面这一行试试。

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -