目录
前言
写了I2C通信用的函数。现在內部先集成了GY-302模块的通信,数据获取。
I2C通信库之应用GY-302(BH1750光照度强度模块)这个模块。
材料
连接方式:
GY-302模块----单片机
VCC----5V
SCL----P07
SDA----P06GND----GND
硬件:
1.STC8A8K64D4最小系统板
2.GY-302模块
代码:
用到的库都是我其它文章都介绍了的,这里在介绍本文用到的库的大概作用。
#include <STC8.H>
#include <CK.H>
#include <I2C.H>
#include <GPIO.H>
<CK.H> 串口通信(数据显示在串口通信软件上)
<GPIO.H> 引脚切换(引脚模式切换)
<I2C.H> I2C通信(用于与GY-302模块通信获取数据)(这给前面没有讲过,最近才写的)
使用步骤
1.引入库
#include <STC8.H>
#include <CK.H>
#include <I2C.H>
#include <GPIO.H>
2.配置工作环境
其他文章也讲了,不同的库的文件,有不同的配置。
以下是我的配置:
I2C.H下:
//模块默认地址
#define I2C_BH1750_Address 0x46 //BH1750默认地址
//I2C映射端口
sbit SCL=P0^7;
sbit SDA=P0^6;
CK.C
#define CK_Bti 115200 //配置串口波特率
#define CK_FOSC 11059200 //单片机运行频率(默认:11.0592 (频率x10^6))
#define CK_IntStrLen 20 //整型上限个数
#define CK_FloatStrLen 20 //浮点型型上限个数(默认保留三位小数)
3.主程序
#include <STC8.H>
#include <CK.H>
#include <I2C.H>
#include <GPIO.H>
void main()
{
CK_Init();
I2C_BH1750_Init();
GPIO_Mods(0,0);
while(1)
{
CK_SendFloatX(I2C_BH1750_Use());
}
}
4.运行结果
测试了手掌挡住时模块时的数据,和拿手机手电筒照时的效果。
手掌挡住时数据在二三十左右,手机手电筒照时数据在七八千。
5.该库函数预览
总结
由于文件过多,还是老方法,分享出来,感兴趣的可以看看。
链接:https://pan.baidu.com/s/1NOPOICfRMUTFnsuOS3arAA
提取码:ifry