有关SHT10驱动问题

shinerise 2016-09-27 05:01:08
最近写基于LPC1768的SHT10驱动,用GPIO模拟I2C。从官方的程序移植到LPC1768上,但是每次write_cmd一个字节到SHT10设备,SHT10都没有ACK。也就是最初是的发送一个字节,设备都没有ACK。有没有大侠碰到过这种问题啊?是怎么解决的?为啥SHT10的I2C,不给ACK呢?
...全文
600 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Acuity. 2016-09-29
  • 打赏
  • 举报
回复
引用 4 楼 g62r83t27 的回复:
51IO口操作和LPC1768的IO操作不同,51单片机无需设置方向位,而你移植过去,需要不断地修改IO的方向,以达到读写目的,是不是这方面的原因。
LPC1768 GPIO设置为开漏模式,不需切换方向;时钟不一样,注意模拟时序中延时时间。
Acuity. 2016-09-28
  • 打赏
  • 举报
回复
sht10接口严格来说不是i2c协议,没有地址,所以无法进行寻址。以前在学校用IO口模拟进行控制。不知道标准的i2c能否读取,如果可以,用LPC硬件i2c啊,LPC的i2c比st的好用多了。
侦探蜡笔小新 2016-09-28
  • 打赏
  • 举报
回复
这个ACK是低电平信号吧,你需要在发送一个CLK时序后一个时钟周期内检测数据线电平,看手册第七页http://uploadpdf.ic37.com/SCHNEIDER/SHT10_datasheet_1116047/181722/SHT10_datasheet.pdf
侦探蜡笔小新 2016-09-28
  • 打赏
  • 举报
回复
51IO口操作和LPC1768的IO操作不同,51单片机无需设置方向位,而你移植过去,需要不断地修改IO的方向,以达到读写目的,是不是这方面的原因。
shinerise 2016-09-28
  • 打赏
  • 举报
回复
引用 2 楼 g62r83t27 的回复:
这个ACK是低电平信号吧,你需要在发送一个CLK时序后一个时钟周期内检测数据线电平,看手册第七页http://uploadpdf.ic37.com/SCHNEIDER/SHT10_datasheet_1116047/181722/SHT10_datasheet.pdf
从手册上看应该是低电平,但是我程序执行后总是高电平。我是直接移植的官方的驱动。官方是基于51的,我无非一直到LPC1768上而已。时序啥的都没有问题啊。

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧