OLED跟BH1750两个IIC协议设备冲突-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8606|回复: 12

[未解决] OLED跟BH1750两个IIC协议设备冲突

[复制链接]
发表于 2020-7-21 20:17 来自手机 | 显示全部楼层 |阅读模式
oled使用的u8g2.h库文件。bh1750使用的wire.h库文件。
oled需要声明一句u8g2.begin();
bh1750需要声明一句wire.begin();

这两个函数好像冲突了,如果调用u8g2.begin();这个函数则bh1750不能正常工作。不调用u8g2.begin();这个函数以后bh1750工作正常。


请问大佬这是不是两个iic协议的设备冲突了???
 楼主| 发表于 2020-7-21 20:18 来自手机 | 显示全部楼层
使用的nodemcu这个开发版
发表于 2020-7-21 20:29 | 显示全部楼层
把I2C速度降到100KHz试试
 楼主| 发表于 2020-7-21 20:47 来自手机 | 显示全部楼层
开在边缘 发表于 2020-7-21 20:29
把I2C速度降到100KHz试试

什么意思???怎么降?
发表于 2020-7-21 21:17 | 显示全部楼层
seattle 发表于 2020-7-21 20:47
什么意思???怎么降?

就是降低I2C总线通讯速率Wire.setClock(100000);
标准速率是400KHz,也就是Wire.setClock(400000);
 楼主| 发表于 2020-7-21 21:38 | 显示全部楼层
开在边缘 发表于 2020-7-21 21:17
就是降低I2C总线通讯速率Wire.setClock(100000);
标准速率是400KHz,也就是Wire.setClock(400000);
...

明白了。我去试试
 楼主| 发表于 2020-7-21 21:47 | 显示全部楼层
开在边缘 发表于 2020-7-21 21:17
就是降低I2C总线通讯速率Wire.setClock(100000);
标准速率是400KHz,也就是Wire.setClock(400000);
...

不行还是不行。只要运行了u8g2.begin();这个函数。。。。BH1750光照模块就得不到数据。
发表于 2020-7-21 22:03 | 显示全部楼层
两者的I2C地址有没有冲突
 楼主| 发表于 2020-7-21 22:20 | 显示全部楼层
开在边缘 发表于 2020-7-21 22:03
两者的I2C地址有没有冲突

应该没有冲突。只有两个模块。而且我把BH1750的地址addr引脚高地电平都试过了。都不可以用
 楼主| 发表于 2020-7-21 22:23 | 显示全部楼层
开在边缘 发表于 2020-7-21 22:03
两者的I2C地址有没有冲突

就是不知道为啥。wire跟u8g2的begin函数是不是冲突了?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 06:48 , Processed in 0.074233 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表