ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:17.53KB ,
资源ID:7662263      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7662263.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(CC2530的BH1750FVI驱动可用于协议栈中.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

CC2530的BH1750FVI驱动可用于协议栈中.docx

1、CC2530的BH1750FVI驱动可用于协议栈中一共5个文件:BH1750FVI.c、BH1750FVI.h、I2C.c、I2C.h、zComDef.hBH1750FVI.c#include I2C.h#include BH1750FVI.h/* * MACROS */* * CONSTANTS */* * TYPEDEFS */* * GLOBAL VARIABLES */* * GLOBAL FUNCTIONS */* * LOCAL VARIABLES */* * LOCAL FUNCTIONS */static void BH1750_Write_Cmd(uint8_t cmd);s

2、tatic void BH1750_Read(uint8_t* BUF);static float BH1750_Convert(uint8_t* BUF);/* * EXTERN VARIABLES */* * EXTERN FUNCTIONS */* 函数名:void BH1750_Init(void)* 功能:初始化 BH1750* 参数:NONE* 返回值:NONE* 调用函数: void I2C_Init(void)* 引用全局变量:NONE* 函数全局变量:NONE* 作者:黄加伟* 时间:2016/5/16* 最后修改时间:* 说明:*/void BH1750_Init(void

3、) I2C_Init();/* 函数名:void BH1750_Write_Cmd(uint8_t cmd)* 功能:向 BH1750 写入命令* 参数: cmd:要写入的命令* 返回值:NONE* 调用函数: void I2C_Start(void) void I2C_WriteByte(uint8_t txd) uint8_t I2C_WaitAck(void) void I2C_Stop(void) void I2C_Delay_ms(uint32_t time)* 引用全局变量:NONE* 函数全局变量:NONE* 作者:黄加伟* 时间:2016/5/16* 最后修改时间:* 说明:*

4、/static void BH1750_Write_Cmd(uint8_t cmd) I2C_Start(); / 起始信号 I2C_WriteByte(BH1750_Addr+0); / 发送设备地址+写信号 while(I2C_WaitAck(); I2C_WriteByte(cmd); / 内部寄存器地址 while(I2C_WaitAck(); /BH1750_SendByte(REG_data); / 内部寄存器地址 I2C_Stop(); / 发送停止信号 I2C_Delay_ms(5);/* 函数名:void BH1750_Read(void)* 功能:读取 BH1750 的值*

5、 参数:NONE* 返回值:NONE* 调用函数: void I2C_Start(void) void I2C_WriteByte(uint8_t txd) uint8_t I2C_WaitAck(void) uint8_t I2C_ReadByte(uint8_t ack) void I2C_Stop(void) void I2C_Delay_ms(uint32_t time)* 引用全局变量: BUF:存储 BH1750 读取到的数据* 函数全局变量:NONE* 作者:黄加伟* 时间:2016/5/16* 最后修改时间:* 说明:*/static void BH1750_Read(uint

6、8_t* BUF) I2C_Start(); / 起始信号 I2C_WriteByte(BH1750_Addr+1); / 发送设备地址+读信号 while(I2C_WaitAck(); BUF0=I2C_ReadByte(1); / 发送 ACK BUF1=I2C_ReadByte(0); / 发送 NACK I2C_Stop(); / 停止信号 I2C_Delay_ms(5);/* 函数名:void BH1750_Convert(void)* 功能:将 BH1750 读取到的数据转换成 光照值* 参数:NONE* 返回值:NONE* 调用函数:NONE* 引用全局变量: BUF:存储 BH

7、1750 读取到的数据 result_lx:光照值* 函数全局变量:* 作者:黄加伟* 时间:2016/5/16* 最后修改时间:* 说明:*/static float BH1750_Convert(uint8_t* BUF) float value_light = 0; uint16_t result = 0; result = BUF0; result = (result8) + BUF1; /o?3y?Y?1a?y?Y value_light = (float)result/1.2; return value_light;/* 函数名:float Get_LightValue(void)

8、* 功能:获取光照值* 参数:NONE* 返回值:NONE* 调用函数: void BH1750_Write_Cmd(uint8_t cmd) void I2C_Delay_ms(uint32_t time) void BH1750_Read(uint8_t* BUF) float BH1750_Convert(uint8_t* BUF)* 引用全局变量:* 函数全局变量:* 作者:黄加伟* 时间:2016/5/16* 最后修改时间:* 说明:*/float Get_LightValue(void) uint8_t BUF2 = 0; BH1750_Write_Cmd(BH1750_ON);

9、/ power on BH1750_Write_Cmd(BH1750_RSET); / clear BH1750_Write_Cmd(BH1750_ONE); / 一次H分辨率模式,至少120ms,之后自动断电模式 I2C_Delay_ms(400); / 延时400ms BH1750_Read(BUF); / 连续读出数据,存储在BUF中 return (BH1750_Convert(BUF);BH1750FVI.h#ifndef _BH1750FVI_H#define _BH1750FVI_H#include #include zComDef.h/* * MACROS */* * CONS

10、TANTS */#define BH1750_Addr 0x46 / ADDR 接地时的地址#define BH1750_ON 0x01 / 通电#define BH1750_CON 0x10 / 连续 H 分辨率模式#define BH1750_ONE 0x20 / 一次 H 分辨率模式,测量后自动设置为断电模式#define BH1750_RSET 0x07 / 重置数组寄存器值,重置指令在断电模式下不起作用/* * TYPEDEFS */* * VARIABLES */* * FUNCTIONS */* 初始化 BH1750*/void BH1750_Init(void);/* 获取光照

11、值*/float Get_LightValue(void);#endifI2C.c#include I2C.h/* * MACROS */#define NOP() asm(NOP)/* * CONSTANTS */* * TYPEDEFS */* * GLOBAL VARIABLES */* * GLOBAL FUNCTIONS */* * LOCAL VARIABLES */* * LOCAL FUNCTIONS */* * EXTERN VARIABLES */* * EXTERN FUNCTIONS */* 函数名 :static void I2C_Delay_10us(uint32_

12、t time)* 功能 :延时 x 个10us* 参数 : time:传入时间值,单位:10us* 返回值 :NONE* 调用函数 :NONE* 引用全局变量 :NONE* 函数全局变量 :NONE* 作者 :黄加伟* 时间 :2016/5/16* 最后修改时间 :* 说明 :无*/static void I2C_Delay_10us(uint32_t time) while(time-) NOP();NOP();NOP();NOP();NOP();NOP();NOP(); NOP();NOP();NOP();NOP();NOP();NOP();NOP(); NOP();NOP();NOP()

13、;NOP();NOP();NOP();NOP(); NOP();NOP();NOP();NOP();NOP();NOP();NOP(); NOP();NOP();NOP();NOP();NOP();NOP();NOP(); /* 函数名 :static void I2C_Delay_ms(uint32_t time)* 功能 :延时 x 毫秒* 参数 : time:传入时间值,单位: ms* 返回值 :NONE* 调用函数 : static void I2C_Delay_10us(uint32_t time)* 引用全局变量 :NONE* 函数全局变量 :NONE* 作者 :黄加伟* 时间 :

14、2016/5/16* 最后修改时间 :* 说明 :无*/void I2C_Delay_ms(uint32_t time) while(time-) I2C_Delay_10us(100); /* 函数名 :void I2C_Init(void)* 功能 :初始化 I2C GPIO 口* 参数 :NONE* 返回值 :NONE* 调用函数 :NONE* 引用全局变量 :NONE* 函数全局变量 :NONE* 作者 :黄加伟* 时间 :2016/5/16* 最后修改时间 :* 说明 :无*/void I2C_Init(void) I2C_SCL_OUTPUT(); I2C_SDA_OUTPUT()

15、; I2C_SCL_HIGH(); I2C_SDA_HIGH();/* 函数名 :static void I2C_SCL_OUTPUT(void)* 功能 :SCL引脚设置为输出模式* 参数 :NONE* 返回值 :NONE* 调用函数 :NONE* 引用全局变量 :NONE* 函数全局变量 :NONE* 作者 :黄加伟* 时间 :2016/5/16* 最后修改时间 :* 说明 :无*/void I2C_SCL_OUTPUT(void) / 配置 P1_2 脚为输出模式 P1SEL &= (12); P1DIR |= (12);/* 函数名 :static void I2C_SCL_INPUT

16、(void)* 功能 :SCL引脚设置为输入模式* 参数 :NONE* 返回值 :NONE* 调用函数 :NONE* 引用全局变量 :NONE* 函数全局变量 :NONE* 作者 :黄加伟* 时间 :2016/5/16* 最后修改时间 : * 说明 :无*/void I2C_SCL_INPUT(void) / 配置 P1_2 脚为输入模式 P1SEL &= (12); P1DIR &= (12); P1INP &= (12); P2INP &= (16);/* 函数名 :static void I2C_SDA_OUTPUT(void)* 功能 :SDA引脚设置为输出模式* 参数 :NONE*

17、返回值 :NONE* 调用函数 :NONE* 引用全局变量 :NONE* 函数全局变量 :NONE* 作者 :黄加伟* 时间 :2016/5/16* 最后修改时间 : * 说明 :无*/void I2C_SDA_OUTPUT(void) / 配置 P1_3 脚为输出模式 P1SEL &= (13); P1DIR |= (13);/* 函数名 :static void I2C_SDA_INPUT(void)* 功能 :SCL引脚设置为输入模式* 参数 :NONE* 返回值 :NONE* 调用函数 :NONE* 引用全局变量 :NONE* 函数全局变量 :NONE* 作者 :黄加伟* 时间 :20

18、16/5/16* 最后修改时间 : * 说明 :无*/void I2C_SDA_INPUT(void) / 配置 P1_3 脚为输入模式 P1SEL &= (13); P1DIR &= (13); P1INP &= (13); P2INP &= (16);/* 函数名 :static void I2c_Start(void)* 功能 :启动 I2C* 参数 :NONE* 返回值 :NONE* 调用函数 : void I2C_SCL_OUTPUT(void) void I2C_SDA_OUTPUT(void) static void I2C_Delay_10us(uint32_t time)* 引用全局变量 :NONE* 函数全局变量 :NONE* 作者 :黄加伟* 时间 :2016/5/16* 最后修改时间 : * 说明 :无*/void I2C_Start(void) I2C_SCL_OUTPUT(); I2C_SDA_OUTPUT(); I2C_SDA_HIGH(); I2C_SCL_HIGH(); I2C_Delay_10us(1)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1