电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
UVIS25读数一直是0
已解决
73482
个问题
已帮助
5993
位优秀工程师
UVIS25读数一直是0
donatello
2017-11-01
浏览量:793
使用I2C接口的紫外线传感器UVIS25探测环境紫外线,代码如下:
#define UVIS25_ADDRESS 0x8E
#define UVIS25_WHO_AM_I 0x0F
#define UVIS25_CTRL_REG1 0x20
#define UVIS25_CTRL_REG2 0x21
#define UVIS25_CTRL_REG3 0x22
#define UVIS25_INT_CFG 0x23
#define UVIS25_INT_SOURCE 0x24
#define UVIS25_THS_UV 0x25
#define UVIS25_STATUS_REG 0x27
#define UVIS25_UV_OUT_REG 0x28
int UVIS25_Init()
{
if(IIC1_ReadData(UVIS25_ADDRESS,UVIS25_WHO_AM_I)==0xca)
{
IIC1_WriteData(UVIS25_ADDRESS,0x01,UVIS25_CTRL_REG1);
IIC1_WriteData(UVIS25_ADDRESS,0x81,UVIS25_CTRL_REG2);
return 0;
}
return -1;
}
float UVIS25_GetUXindex()
{
uint8_t temp=0,data=0;
do
{
temp=IIC1_ReadData(UVIS25_ADDRESS,UVIS25_STATUS_REG);
}while(temp!=1);
IIC1_WriteData( UVIS25_ADDRESS,0x01,UVIS25_CTRL_REG2);
data=IIC1_ReadData(UVIS25_ADDRESS,UVIS25_UV_OUT_REG);
return (float)data/16;
}
while(1)
{
printf("UV指数:%f\n",UVIS25_GetUXindex());
Delay_ms(500);
}
探测出来的结果一直是0。能确保连线和I2C初始化是没有问题的,因为这个I2C接口同时也接了其它的I2C器件,也是可以正常工作的,请问这是硬件问题还是软件问题呢?
显示全部
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答
数量:
3
chownn
代码里的I2C地址进行了移位操作没有?
发布于
2017-11-01
举报
评论 2
0
0
发布
donatello
回复了 chownn:0x8E/0x8F,肯定移位了啊
回复
电子老工程师
回复了 :TMCP0J106MTRF ESR是:5.3Ohm @ 100kHz,原型号:8欧姆
回复
chen0000009
确定I2C的地址没错吗
发布于
2017-11-02
举报
评论 0
0
0
发布
一笔之名也
你的while中一直在读取,最好是加个延时再读试试,一般这种模块都是要有延时的。
发布于
2018-01-06
举报
评论 1
0
0
发布
电子老工程师
回复了 :2020年有停产通知, 官网推荐的替代料,NCP1234AD100R2G,跟客户在确认一下
回复
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
UVIS25读数一直是0
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: