纠结了两天,终于弄好也,一开始一直想着移植别人现成的程序,可是网上资料很少,找了后移植还出了很多问题,后来狠下心,自己看着手册弄了,结果自己写比移植还快,还把IIC复习了一遍,还是自己动手好啊!!!
用的有原子哥的myiic.h,工程太大,直接上文件吧:
这是main中需要的:
extern float result_lx;
void TaskBH1750(void *pdata)
{
Init_BH1750();
while(1)
{
Start_BH1750(); //power on
delay_ms(180); //延时180ms
Read_BH1750(); //连续读出数据,存储在BUF中
Convert_BH1750(); //转换结果至result_lx
OSTimeDlyHMSM(0,0,0,500);
}
GUI_DispDecAt(result_lx,0,60,5);
GUI_DispStringAt("lx",50,60);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
程序是我自己验证后发的,理论上应该是通用的,有可能是用的模块不同吧,有的模块设计的兼容性不太好少个上拉电阻什么就会出现问题,以前我用过一个蓝牙模块就是这样。建议你在IIC中增加延时试试,具体问题还是自己解决。或者你看着datasheet自己试着写写驱动,有时候问来问去真不如靠自己。
一周热门 更多>