感谢ROHM给予的这个套件测试:
由于收到套件的时候,发现排针都生锈了,不过这都难不倒我,小小的改动,弄了一下,如下图:
接线顺序:
OLED :VCC 5V供电 PB6->SCL PB7->SDA
BH1750 : VCC 3.3V供电 PB10->SCL PB11->SDA PB12->ADD
下面就是开始程序设计了:
本次设计,使用GPIO模拟IIC时序,MCU读取BH1750光线传感器数据通过串口打印出来,同时在OLED上显示,并绘制点画线。
由于OLED只有128 x 64 个像素点阵,扣除建立坐标系使用的位置,其在X轴范围是[3 -127],Y轴范围[0 - 60]。
所以需要按照光强和时间映射到这个坐标系。
经过调试,最终结果如下:
公布源码:
本次测试发现问题如下:在读取BH1750光强数据的时候,光强数据由两个寄存器组成:高位八位和低位八位。
而我的测试确实低八位数据永远全为oxFF。
使用逻辑分析仪抓包如下:
目前我还没有找到问题的原因,欢迎各位进行指正。
按理说,我的时序应该是没有问题的,也是按照数据手册上的流程操作寄存器。
能够读出第一个寄存器的值,不应该不能读出第二个寄存器的,
请各位看官把这个程序下载下去试试看,并告知我答案哈。