OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
楼主: 爱博不专

分享!模拟IIC,读取BH1750光强传感器!

[复制链接]

5

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2013-8-14
在线时间
4 小时
发表于 2015-3-20 17:04:30 | 显示全部楼层
回复【49楼】爱博不专:
---------------------------------
调到烦了.....后面直接放弃了原本自己的那个
正点原子逻辑分析仪DL16劲爆上市
回复 支持 反对

使用道具 举报

8

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2014-7-4
在线时间
7 小时
发表于 2015-3-30 10:22:59 | 显示全部楼层
楼主   你的那个addr  最后是怎么处理的   是接高电平还是低电平呢?   我这买了个模块  上面有引出    我不知道怎么处理了
呵呵
回复 支持 反对

使用道具 举报

35

主题

227

帖子

3

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2014-3-5
在线时间
35 小时
 楼主| 发表于 2015-3-31 22:04:24 | 显示全部楼层
回复【52楼】694225976:
---------------------------------
看模块说明啊,接与不接是两种不同的对应地址
把看到的有意义的例子进行扩充,并将其切实的运用到自己的设计中。 应用确实不容易,水平是在不断的实践中完善和发展的。
回复 支持 反对

使用道具 举报

8

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2014-7-4
在线时间
7 小时
发表于 2015-4-4 16:01:52 | 显示全部楼层
回复【53楼】爱博不专:
---------------------------------
已经解决了   我用的是接地的方式   唯一的差别就在初始化上了
呵呵
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2015-1-19
在线时间
0 小时
发表于 2015-4-17 23:38:31 | 显示全部楼层
大神好,问个小白点的问题,您在i2c.c中额外添加这两个函数是什么意思呢?看这两个函数,似乎是要让似乎是要让PC5来收数据,同时也是发数据,但我还是不明白到底是什么用处。请帮忙解答下 ,非常感谢您
void SDA_OUT(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; //开漏输出
  GPIO_Init(GPIOC,&GPIO_InitStructure);
}
void SDA_IN(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
  GPIO_Init(GPIOC,&GPIO_InitStructure);
}
回复 支持 反对

使用道具 举报

35

主题

227

帖子

3

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2014-3-5
在线时间
35 小时
 楼主| 发表于 2015-4-18 12:15:58 | 显示全部楼层
回复【55楼】福禄小金刚:
---------------------------------
你说IIC中SCL SDA分别是干嘛的。。。51中就不用切换了
把看到的有意义的例子进行扩充,并将其切实的运用到自己的设计中。 应用确实不容易,水平是在不断的实践中完善和发展的。
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2015-1-19
在线时间
0 小时
发表于 2015-4-18 16:34:08 | 显示全部楼层
回复【56楼】爱博不专:
---------------------------------
我的意思是,原子哥给的例子中的原程序中并没有这两个函数,您这样用是什么用途的?解决什么问题?
回复 支持 反对

使用道具 举报

35

主题

227

帖子

3

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2014-3-5
在线时间
35 小时
 楼主| 发表于 2015-4-19 10:10:20 | 显示全部楼层
回复【57楼】福禄小金刚:
---------------------------------
原子哥直接用的寄存器方式改变IO配置。。。解决数据收发问题。。。
把看到的有意义的例子进行扩充,并将其切实的运用到自己的设计中。 应用确实不容易,水平是在不断的实践中完善和发展的。
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2015-1-19
在线时间
0 小时
发表于 2015-4-19 12:01:26 | 显示全部楼层
回复【58楼】爱博不专:
---------------------------------
嗷 好的 谢谢您
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2015-4-14
在线时间
0 小时
发表于 2015-4-24 17:37:36 | 显示全部楼层
小弟近期从凌阳片机转做STM32系列,最近在用一个IIC的项目,是用STM32作为从机,至今无解,
经过此地,看到LZ有用IIC文件内对SDA线有两个初始化函数,抖胆问诸位大牛:可否用在从模式?另外如果我只需显示得到的数据,要如何与主机进行通讯?
回复 支持 反对

使用道具 举报

35

主题

227

帖子

3

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2014-3-5
在线时间
35 小时
 楼主| 发表于 2015-4-25 11:14:46 | 显示全部楼层
回复【60楼】wenting920:
---------------------------------
SDA是数据线所以需要不断切换IO输入输出配置,跟主从没关系啊。。。
你的意思stm32作为从机只需要接收并显示数据?那直接用串口不简单的多?
把看到的有意义的例子进行扩充,并将其切实的运用到自己的设计中。 应用确实不容易,水平是在不断的实践中完善和发展的。
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2015-4-14
在线时间
0 小时
发表于 2015-4-25 12:12:37 | 显示全部楼层
回复【61楼】爱博不专:
---------------------------------
嗯……客户要求I2C接收数据,然后用串口打印……Oh...
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2015-5-12
在线时间
0 小时
发表于 2015-5-12 17:03:09 | 显示全部楼层
楼主,我想问下,BH1750可以直接接到FPGA上用么,网上有程序吗?腓肠肌,再掀蹬
回复 支持 反对

使用道具 举报

35

主题

227

帖子

3

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2014-3-5
在线时间
35 小时
 楼主| 发表于 2015-5-12 22:13:55 | 显示全部楼层
回复【63楼】hpzhang:
---------------------------------
FPGA没玩过,只要能产生通讯时序,应该可以吧
把看到的有意义的例子进行扩充,并将其切实的运用到自己的设计中。 应用确实不容易,水平是在不断的实践中完善和发展的。
回复 支持 反对

使用道具 举报

23

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2015-2-19
在线时间
32 小时
发表于 2015-7-18 12:19:06 | 显示全部楼层
赞!lz的代码写的很规整
回复 支持 反对

使用道具 举报

头像被屏蔽

65

主题

277

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2013-8-11
在线时间
29 小时
发表于 2015-7-18 19:27:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

28

主题

91

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2132
金钱
2132
注册时间
2014-11-18
在线时间
215 小时
发表于 2015-8-11 23:01:49 | 显示全部楼层
这里面的地址0x46,是怎么得到的?
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2015-8-14
在线时间
7 小时
发表于 2015-8-17 11:27:14 | 显示全部楼层
你好,我想知道如果是两块BH1750一起用,又要怎么用呢?
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2015-8-14
在线时间
7 小时
发表于 2015-8-17 11:44:36 | 显示全部楼层
delay.h可以发给我看看吗
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2015-8-17
在线时间
0 小时
发表于 2015-8-17 14:19:13 | 显示全部楼层
电子行业厂商值得推广的真正意义上的电子行业集散地。行业人士的最佳采购平台,中国百州电子网。
 为电子行业厂商提供免费使用三个月VIP会员服务。
回复 支持 反对

使用道具 举报

8

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2015-9-19
在线时间
1 小时
发表于 2015-11-1 10:19:36 | 显示全部楼层
您好,楼主,我最近也在做bh1750模块的使用,我是想用单片机读取光强在液晶显示屏显示,我用的是原子哥的iic程序,又加了几行,感觉没问题,但是什么数据也读不出来,不知道是哪里出了问题,您方便看一下么

bh1750.zip

4.81 MB, 下载次数: 579

回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2015-11-2
在线时间
1 小时
发表于 2015-11-5 13:30:05 | 显示全部楼层
请问BH1750你怎么接线的,为什么我的读不出数据来
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2015-11-18
在线时间
0 小时
发表于 2015-11-18 16:54:57 | 显示全部楼层
我在用MSP430F149打算测量光照强度,但是BH1750没有应答信号,IIC的使用应该是没有问题,能否指点一下要往哪个方向调试。十分感谢!
如果不检测ACK信号的话就测出来是 FF,检测ACK结果就是00. 实在不知道怎么解决了。。
回复 支持 反对

使用道具 举报

35

主题

227

帖子

3

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2014-3-5
在线时间
35 小时
 楼主| 发表于 2015-11-19 20:54:09 | 显示全部楼层
回复【73楼】小沫:
---------------------------------
检查IIC电平匹配,调通信时间,应该还是程序问题
把看到的有意义的例子进行扩充,并将其切实的运用到自己的设计中。 应用确实不容易,水平是在不断的实践中完善和发展的。
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2015-11-2
在线时间
1 小时
发表于 2015-11-24 16:09:45 | 显示全部楼层
楼主,请教一下问题,我的光照读不出来,但是result_lx显示54400请问能告知是哪里出问题了吗?
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2016-1-8
在线时间
2 小时
发表于 2016-1-11 16:58:26 | 显示全部楼层
楼主,我看网上其他人分享的例子,在向BH1750发送测试模式指令后并没有检测BH1750的应答位,而是直接读的测量结果,但是也能读到结果,我看你的代码里有用while循环检测BH1750应答位的到来。请问两者有何区别?
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2014-2-27
在线时间
6 小时
发表于 2016-3-3 21:55:43 | 显示全部楼层
楼主请问extern float result_lx;

void TaskBH1750(void *pdata)
这些是什么意思,编译有错误。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2015-7-21
在线时间
39 小时
发表于 2016-3-13 17:35:40 | 显示全部楼层
都是高手,学习了
回复 支持 反对

使用道具 举报

4

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2016-1-25
在线时间
75 小时
发表于 2016-4-4 11:27:09 | 显示全部楼层
自己将51的代码改成32的,用连续高精度模式,读出8个1,且不能自动更新

又换成楼主的代码,高位为0,低位四个1,不知道怎么搞了,没有一个查错的思路
回复 支持 反对

使用道具 举报

35

主题

227

帖子

3

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2014-3-5
在线时间
35 小时
 楼主| 发表于 2016-4-4 22:32:59 | 显示全部楼层
ljmf5 发表于 2016-4-4 11:27
自己将51的代码改成32的,用连续高精度模式,读出8个1,且不能自动更新

又换成楼主的代码,高位为0,低 ...

感觉是通信问题,先把IIC延时放大点,换个IO试试
把看到的有意义的例子进行扩充,并将其切实的运用到自己的设计中。 应用确实不容易,水平是在不断的实践中完善和发展的。
回复 支持 反对

使用道具 举报

11

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2016-4-3
在线时间
41 小时
发表于 2016-4-19 17:07:29 | 显示全部楼层
用的楼主的程序,BUF【0】-BUF[3]都是255,敢问这是什么原因啊
回复 支持 3 反对 0

使用道具 举报

9

主题

111

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
299
金钱
299
注册时间
2013-5-28
在线时间
24 小时
发表于 2016-7-5 17:59:47 | 显示全部楼层
zhuri 发表于 2016-4-19 17:07
用的楼主的程序,BUF【0】-BUF[3]都是255,敢问这是什么原因啊

你找到问题了吗?是模块有问题还是代码时序不对?
学习单片机编程贵在坚持,无论多难的问题都有不轻易放弃的原则,坚持着去解决它,相信你总会找到解决方法的。
回复 支持 反对

使用道具 举报

9

主题

111

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
299
金钱
299
注册时间
2013-5-28
在线时间
24 小时
发表于 2016-7-5 19:57:27 | 显示全部楼层
爱博不专 发表于 2014-7-30 22:01
回复【11楼】judy:
---------------------------------
我用的是模块,没有DVI引出,ADD是IIC器件地址选择 ...

楼主,我用了您的代码,在等待应答的时候就死在while里面了。请问是什么原因,谢谢!
学习单片机编程贵在坚持,无论多难的问题都有不轻易放弃的原则,坚持着去解决它,相信你总会找到解决方法的。
回复 支持 反对

使用道具 举报

5

主题

150

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1181
金钱
1181
注册时间
2015-12-28
在线时间
132 小时
发表于 2016-7-13 11:43:06 | 显示全部楼层
能把你的main.c 的的主函数main()整体的发上来看一下呗,我现在的情况是,bh1750发上来的数不刷新,固定值,复位后才改变。
回复 支持 反对

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2016-3-30
在线时间
28 小时
发表于 2016-7-17 14:08:49 | 显示全部楼层
我用了你的程序,但是不出结果!卡在这了,这是怎么回事?
121.png
回复 支持 反对

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2016-3-30
在线时间
28 小时
发表于 2016-7-17 14:11:41 | 显示全部楼层
spark_zhang 发表于 2016-7-17 14:08
我用了你的程序,但是不出结果!卡在这了,这是怎么回事?

不好意思!可能是之前程序有点问题,刚才又市了一下,现在好了
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2016-3-16
在线时间
30 小时
发表于 2016-8-23 10:52:03 | 显示全部楼层
谢谢分享,有用!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2016-9-27
在线时间
1 小时
发表于 2016-9-27 22:02:48 | 显示全部楼层
很好用
回复 支持 反对

使用道具 举报

tianyi212 该用户已被删除
发表于 2016-12-26 11:36:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

5

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2017-2-16
在线时间
23 小时
发表于 2017-2-17 16:42:27 | 显示全部楼层
您好,您可否发一下main函数给看一下。我用的LCD显示光强数据。
回复 支持 反对

使用道具 举报

5

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2017-2-16
在线时间
23 小时
发表于 2017-2-17 16:46:06 | 显示全部楼层
罹落_0_ 发表于 2014-10-21 21:41
楼主可以给完整的main.c么?不太理解

请问,你现在有这个的main.c吗?
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2020-10-9
在线时间
3 小时
发表于 2017-3-5 16:42:03 | 显示全部楼层
楼主 你的主函数还用到了UCOS系统了吗??最后是在哪里显示的
回复 支持 反对

使用道具 举报

278345929 该用户已被删除
发表于 2017-3-17 12:04:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

14

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
341
金钱
341
注册时间
2017-4-11
在线时间
107 小时
发表于 2017-7-5 10:24:45 | 显示全部楼层
spark_zhang 发表于 2016-7-17 14:11
不好意思!可能是之前程序有点问题,刚才又市了一下,现在好了

hi 能分享一下您的代码吗?请问您的DVI怎么接?
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
237
金钱
237
注册时间
2016-11-18
在线时间
51 小时
发表于 2017-8-9 14:26:42 | 显示全部楼层
我也是发现原子哥的等待ACK,有不妥之处,刚设置为输入就输出高
回复 支持 反对

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
175
金钱
175
注册时间
2016-5-25
在线时间
29 小时
发表于 2017-8-10 10:30:42 | 显示全部楼层
beyond696 发表于 2014-4-17 21:48
这里有PC上8个平台,6种语言实现对BH1750读写控制的程序源码下载!
点我下载

找不到请求的页面?链接不好用
<a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=10984466&site=qq&menu=y
回复 支持 反对

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
175
金钱
175
注册时间
2016-5-25
在线时间
29 小时
发表于 2017-8-10 10:53:29 | 显示全部楼层
也准备开始读这个型号的传感器了,先收藏...参考下
<a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=10984466&site=qq&menu=y
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2017-8-15
在线时间
2 小时
发表于 2017-8-15 10:24:32 | 显示全部楼层
一次分辨率模式与连续分辨率模式有什么区别?
回复 支持 反对

使用道具 举报

25

主题

161

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2017-7-17
在线时间
149 小时
发表于 2017-10-12 15:49:58 | 显示全部楼层
感谢楼主分享程序,受教了。根据原子的IIC库,仿写了一个BH1750程序 -- 32F407(液晶+串口显示),分享一下

BH1750.zip

4.12 MB, 下载次数: 477

不忘初心,方得始终!
回复 支持 反对

使用道具 举报

129

主题

397

帖子

0

精华

高级会员

Rank: 4

积分
831
金钱
831
注册时间
2017-7-12
在线时间
150 小时
发表于 2017-12-17 13:19:41 | 显示全部楼层
bh1750的范围时65535,你这是float,最大只有255
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-7 22:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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