OpenEdv-开源电子网

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

软件模拟I2C读取sht30温湿度传感器,读数一直是FF

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2018-11-28
在线时间
2 小时
发表于 2018-11-28 16:17:20 | 显示全部楼层 |阅读模式
1金钱
使用Single Shot模式,流程是发送写地址0x88,发送指令0x2c 0x06 均收到ACK,然后STOP,之后发送读地址0x89,收到ACK,开始读取,到这里出现问题,读取的数据一直是FF,也就是SDA一直是高电平,不明白这个是为什么,有大神玩过sht30的可以帮忙看下原因吗 ecc661577fcef6179160e62762b94a7.jpg ecc661577fcef6179160e62762b94a7.jpg

最佳答案

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

试试看附件的代码.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

259

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2317
金钱
2317
注册时间
2016-12-2
在线时间
354 小时
发表于 2018-11-28 16:17:21 | 显示全部楼层
jien 发表于 2018-11-28 18:15
1,下发命令完成后,分别调整了1,2,6s后读取,仍旧是发送0x89收到ACK,开始读后SDA一直是高电平,从没 ...

试试看附件的代码.

Sht30_iic_soft.zip

3.26 KB, 下载次数: 453

Sht30_iic_soft.zip

回复

使用道具 举报

3

主题

259

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2317
金钱
2317
注册时间
2016-12-2
在线时间
354 小时
发表于 2018-11-28 17:40:35 | 显示全部楼层
本帖最后由 sammy902583 于 2018-11-28 17:52 编辑

1. 试试看下完command之后间隔久一点再读, 不要太快读.
2. 读的时候, 下完address之后, 检查它有没有回ACK.
3. 可以试试看改用disable clock stretching的command 0x24 0x00. clock stretching某方面来讲, slave也在拉SCL, 所以master理论上也要同时监看SCL, 感觉比较不好做.
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2018-11-28
在线时间
2 小时
 楼主| 发表于 2018-11-28 18:15:26 | 显示全部楼层
sammy902583 发表于 2018-11-28 17:40
1. 试试看下完command之后间隔久一点再读, 不要太快读.
2. 读的时候, 下完address之后, 检查它有没有回ACK ...

1,下发命令完成后,分别调整了1,2,6s后读取,仍旧是发送0x89收到ACK,开始读后SDA一直是高电平,从没有变化
2,从开始写address,发送指令,从机都有ack,然后address+读,也有收到ack,之后的现象是一样的,sda高电平没有任何变化
3,使用0x2400,发送完指令后,address+读,直到收到ack再开始读,但是一直是nack,我又改成如果是nack,就再发address+读,依然是nack,看示波器波形,持续10s还是nack
回复

使用道具 举报

2

主题

685

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3447
金钱
3447
注册时间
2017-7-4
在线时间
869 小时
发表于 2018-11-28 22:36:25 | 显示全部楼层
分享个一直用的模拟i2c,驱动到各种器件,都没毛病。
https://blog.csdn.net/qq_20553613/article/details/78878211
EEPROM:
https://blog.csdn.net/qq_20553613/article/details/82733817
回复

使用道具 举报

13

主题

633

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1331
金钱
1331
注册时间
2016-8-1
在线时间
229 小时
发表于 2018-11-29 20:23:43 | 显示全部楼层
这个帖子好
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2018-11-25
在线时间
6 小时
发表于 2018-12-2 08:52:05 | 显示全部楼层
jien 发表于 2018-11-28 18:15
1,下发命令完成后,分别调整了1,2,6s后读取,仍旧是发送0x89收到ACK,开始读后SDA一直是高电平,从没 ...

我也遇到同样问题,问一下,你解决了吗?
回复

使用道具 举报

26

主题

355

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-4-1
在线时间
432 小时
发表于 2019-1-25 13:10:06 | 显示全部楼层
sammy902583 发表于 2018-11-28 20:54
试试看附件的代码.

能用 多谢分享
回复

使用道具 举报

0

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
239
金钱
239
注册时间
2018-2-28
在线时间
76 小时
发表于 2019-3-8 11:51:00 | 显示全部楼层
学习一下
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2020-4-10
在线时间
2 小时
发表于 2020-4-10 15:32:51 | 显示全部楼层
不知道怎么解决不理解?
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2020-9-10
在线时间
2 小时
发表于 2021-1-20 16:26:57 | 显示全部楼层
ainizg 发表于 2018-12-2 08:52
我也遇到同样问题,问一下,你解决了吗?

我也遇到同样问题,问一下,你解决了吗?
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6661
金钱
6661
注册时间
2016-5-29
在线时间
909 小时
发表于 2021-1-21 09:30:20 | 显示全部楼层
楼主用的分析软件是什么?又像逻辑分析仪,,又像是示波器..
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2021-8-2
在线时间
0 小时
发表于 2021-8-2 21:47:42 | 显示全部楼层
sammy902583 发表于 2018-11-28 20:54
试试看附件的代码.

受教了,我也遇到和楼主一样的问题,用这份代码
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2022-3-10
在线时间
0 小时
发表于 2022-3-10 21:43:25 | 显示全部楼层
这个问题后来怎么解决的?
回复

使用道具 举报

5

主题

134

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1387
金钱
1387
注册时间
2019-5-29
在线时间
163 小时
发表于 2022-3-15 19:40:01 | 显示全部楼层
这个前几天调试过,我的问题是应答程序有问题,我当时用的是STC8,IIC通信与STM32的有区别,修改完IIC_WAIK_ACK 部分,就可以正确读数,如果楼主问题没有解决就请私信我
偷偷摸鱼
回复

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2021-7-2
在线时间
37 小时
发表于 2022-4-25 17:15:05 | 显示全部楼层
sammy902583 发表于 2018-11-28 20:54
试试看附件的代码.

能用!!多谢分享
回复

使用道具 举报

29

主题

492

帖子

0

精华

高级会员

Rank: 4

积分
810
金钱
810
注册时间
2016-4-7
在线时间
123 小时
发表于 2022-4-30 15:01:10 | 显示全部楼层
时序不对吧
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 20:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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