OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 13057|回复: 25

求助TSL2561读不出数据

[复制链接]

17

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2014-10-14
在线时间
0 小时
发表于 2014-11-4 20:02:02 | 显示全部楼层 |阅读模式
5金钱
调了一整天TSL2561光强传感器,IIC是用的战舰的代码移植的,这块肯定是不会有问题。TSL2561驱动代码是网上找的,看了大家的都和我差不多,但是我读器件的ID,读出来是错误的。光强移植显示0,地址用的接地,读地址是0x53,写是0x52,请大神指点下,哪里不对了?调得我真的是心力交瘁
[mw_shl_code=c,true]uchar DataLow0,DataHigh0,DataLow1,DataHigh1; u16 Channel0,Channel1; void tsl2561_Init(void) { IIC_Init(); TSL2561_Write(CONTROL,0x03); //?è??TSL2561??????×??? TSL2561_Write(TIMING,0x01); // TSL2561_Write(TIMING,0X02); // TSL2561_Write(THRESHLOWLOW,0X00); // TSL2561_Write(THRESHLOWHIGH,0X00); // TSL2561_Write(INTERRUPT ,0X00); //TSL2561_Write(TIMING,0x02); //?è???±???????÷ // TSL2561_Write(INTERRUPT,0x25); //??2s } void respons() { uchar i; IIC_SCL=1; delay_us(4); while((IIC_SDA==1)&&(i<250)) i++; IIC_SCL=0; delay_us(4); } void TSL2561_Write(uchar command,uchar date) { IIC_Start(); IIC_Send_Byte(0x52); IIC_Wait_Ack(); IIC_Send_Byte(command); IIC_Wait_Ack(); IIC_Send_Byte(date); IIC_Wait_Ack(); IIC_Stop(); } uchar TSL2561_Read(uchar command) { uchar date; IIC_Start(); IIC_Send_Byte(0x52); IIC_Wait_Ack(); IIC_Send_Byte(command); IIC_Wait_Ack(); IIC_Start(); IIC_Send_Byte(0x53); IIC_Wait_Ack(); date = IIC_Read_Byte(0); IIC_Stop(); return date; } u32 E; void Read_Light(void) { DataLow0 = TSL2561_Read(DATA0LOW); DataHigh0 = TSL2561_Read(DATA0HIGH); Channel0 = 256*DataHigh0 + DataLow0; DataLow1 = TSL2561_Read(DATA1LOW); DataHigh1 = TSL2561_Read(DATA1HIGH); Channel1 = 256*DataHigh1 + DataLow1; delay_ms(410); if(0.0<Channel1/Channel0&&Channel1/Channel0<=0.50)E=(0.0304*Channel0-0.062*Channel0*pow(Channel1/Channel0, 1.4)); if(0.50<Channel1/Channel0&&Channel1/Channel0<=0.61)E=(0.0224*Channel0-0.031*Channel1); if(0.61<Channel1/Channel0&&Channel1/Channel0<=0.80)E=(0.0128*Channel0-0.0153*Channel1); if(0.80<Channel1/Channel0&&Channel1/Channel0<=1.30)E=(0.00146*Channel0-0.00112*Channel1); if(Channel1/Channel0>1.30)E=0; /* if(0.0<Channel1/Channel0&&Channel1/Channel0<=0.52)E=(0.0315*Channel0-0.0593*Channel0*pow(Channel1/Channel0, 1.4)); if(0.52<Channel1/Channel0&&Channel1/Channel0<=0.65)E=(0.0229*Channel0-0.0291*Channel1); if(0.65<Channel1/Channel0&&Channel1/Channel0<=0.80)E=(0.0157*Channel0-0.0180*Channel1); if(0.80<Channel1/Channel0&&Channel1/Channel0<=1.30)E=(0.00338*Channel0-0.00260*Channel1); if(Channel1/Channel0>1.30)E=0; */ //delay_ms(200); } extern u32 E; int main(void) { u8 id,a; delay_init(); //???±?????????? NVIC_Configuration(); //?è??NVIC????·?×é2:2??????????????2???ì???????? uart_init(9600); //?®??????????9600 LED_Init(); LCD_Init(); tsl2561_Init(); LCD_ShowString(60,50,200,16,16,"find ID:"); LCD_ShowString(60,70,200,16,16,"GUANGQIANG:"); id= TSL2561_Read(ID); a=TSL2561_Read(CONTROL); LCD_ShowNum(60+8*8,50,id,3,16); LCD_ShowNum(60,110,a,3,16); while(1) { Read_Light(); LCD_ShowNum(60,90,E,8,16); delay_ms(100); LED0=!LED0; } } [/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

回复【9楼】冰草绿: --------------------------------- 解决了,嘿嘿
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2014-10-14
在线时间
0 小时
 楼主| 发表于 2014-11-4 20:02:03 | 显示全部楼层
回复【9楼】冰草绿:
---------------------------------
解决了,嘿嘿
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-11-4 22:40:21 | 显示全部楼层
先检查下SDA,SCL有没有波形。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-11-5 08:13:27 | 显示全部楼层
最靠谱的方法就是抓IIC的波形来分析
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

17

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2014-10-14
在线时间
0 小时
 楼主| 发表于 2014-11-5 09:56:35 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
这个我倒没试过,不过我移植的战舰的IIC,在ADXL345上都能用的好好的,难道移植过来IIC就不能用了吗,这应该不会的把,或者是你以前遇到过这种情况?
回复

使用道具 举报

17

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2014-10-14
在线时间
0 小时
 楼主| 发表于 2014-11-5 10:00:48 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我通过些寄存器比如说0x03,然后在读这个寄存器得到的值也是0x03,这应该说明时序没问题把,主要是我手头没有示波器,哎
回复

使用道具 举报

17

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2014-10-14
在线时间
0 小时
 楼主| 发表于 2014-11-5 10:01:05 | 显示全部楼层
回复【3楼】Badu_Space:
---------------------------------
谢谢答疑老师解答,我通过些寄存器比如说0x03,然后在读这个寄存器得到的值也是0x03,这应该说明时序没问题把,主要是我手头没有示波器,哎
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-11-5 12:50:54 | 显示全部楼层
回复【6楼】名侦探:
---------------------------------
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-11-5 14:46:25 | 显示全部楼层
回复【4楼】名侦探:
---------------------------------
得测试下,才好确认。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2015-4-15
在线时间
0 小时
发表于 2015-4-15 10:25:27 | 显示全部楼层
楼主,你提出的问题解决了么,我也遇到了相似的问题,求帮助啊....
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2015-5-13
在线时间
0 小时
发表于 2015-5-13 12:30:31 | 显示全部楼层
楼主怎么解决的
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2015-5-13
在线时间
0 小时
发表于 2015-5-13 14:47:34 | 显示全部楼层
师兄怎么解决的,指导下!
我现在也遇到这个问题了,有没有Proteus TSL2561的仿真库文件?
回复

使用道具 举报

17

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2014-10-14
在线时间
0 小时
 楼主| 发表于 2015-5-13 16:27:06 | 显示全部楼层
仅供参考

TSL2561.zip

3.98 KB, 下载次数: 2436

回复

使用道具 举报

17

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2014-10-14
在线时间
0 小时
 楼主| 发表于 2015-5-13 16:28:00 | 显示全部楼层
回复【12楼】jian5156:
---------------------------------
回复【11楼】负点电子:
---------------------------------
你们参考下吧,文本文件中的注释看不了,你们对照手册看一看
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2014-7-14
在线时间
0 小时
发表于 2015-5-19 19:10:34 | 显示全部楼层
回复【13楼】名侦探:
---------------------------------
楼主有没有试过读取转换结果的寄存器不按照DATA0LOW DATA0HIGH DATA1LOW DATA1HIGH的顺序来做呢?
例如反过来,先读DATA1HIGH
我这边试出来的结果是不一样的,而且是非常不一样
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-6-2
在线时间
0 小时
发表于 2015-6-2 19:56:48 | 显示全部楼层
楼主可不可以将源程序贴出来,我这还是不行啊!读出来的数据是0。
回复

使用道具 举报

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2015-1-7
在线时间
12 小时
发表于 2016-2-26 10:15:16 | 显示全部楼层
我也是在用tsl2561 楼主的例程给力,一下就调出来了
回复

使用道具 举报

8

主题

103

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2012-11-12
在线时间
22 小时
发表于 2016-4-14 15:57:45 | 显示全部楼层
八度空间 发表于 2014-11-5 08:13
最靠谱的方法就是抓IIC的波形来分析

老师,TSL2561能用于检测 LED(660nm或940nm波段)的光强吗。这个是手册看到的,是不是满足这个波段的就可以检测光强
捕获.PNG

没人看你努力的过程,只看最后的结果。
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-4-14 21:39:44 | 显示全部楼层
黄毛 发表于 2016-4-14 15:57
老师,TSL2561能用于检测 LED(660nm或940nm波段)的光强吗。这个是手册看到的,是不是满足这个波段的就可以 ...

嗯,你要检测的光的波长要在书册上标示的范围内,否则没反应也是正常的
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-5-24
在线时间
1 小时
发表于 2016-5-24 22:44:15 | 显示全部楼层
abcde 发表于 2016-2-26 10:15
我也是在用tsl2561 楼主的例程给力,一下就调出来了

你好,咨询一下,我也是用楼主的例程,一直调不通,请问一下您是改了哪些地方呢?
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-7-7
在线时间
5 小时
发表于 2016-7-15 14:16:50 | 显示全部楼层
楼主在哪买的模块啊?? 我急求
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-7-7
在线时间
5 小时
发表于 2016-7-17 09:34:14 | 显示全部楼层
楼主有没有库函数版本的啊??  急求谢了
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2018-4-3
在线时间
2 小时
发表于 2018-4-7 20:58:59 | 显示全部楼层
能借鉴一下吗?发一下源码
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2018-4-3
在线时间
2 小时
发表于 2018-4-7 21:00:13 | 显示全部楼层
名侦探 发表于 2014-11-4 20:02
回复【9楼】冰草绿:
---------------------------------
解决了,嘿嘿

请问能借鉴一下stm32的TSL2561的源码吗?
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2019-7-29
在线时间
4 小时
发表于 2019-7-31 15:15:13 | 显示全部楼层
你好 读取出来的id 应该是多少?
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2020-7-14
在线时间
3 小时
发表于 2020-7-23 17:30:19 | 显示全部楼层
这个传感器读的话,返回来的第一位不是光照有效数据,而是后面有多少位数据的count值吧,数据手册第13页,Byte Count=N
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 18:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表