SHT20的使用问题

1. SHT20 温湿度传感器的选择

初步选择的是ds18b20 和 dh11 ,但由于ARTIK平台提供的延迟函数usleep量级在10ms左右,时序不正确,无法正常单总线驱动。所以选用i2c驱动的SHT20。

问题分析1:usleep函数的延时。因为TIZEN 系统的进程切换粒度最小是10ms左右,

涉及知识点:sleep函数的作用,Linux进程切换的粒度

参考资料:https://blog.csdn.net/chinaclock/article/details/48712703

问题分析2:自写最简单的while函数实现延时,发现精确度在100us级,有可能是因为变量没有加volatile,需要进一步尝试;

 

2. i2c驱动中遇到的问题

问题1:提示timed out,

原因:从机地址错误,sdk提供的 i2c_write直接按照正常逻辑来写既可以,所以不考虑地址左移,读写标志之类。

在程序中直接调用  i2c_write(id,0x40,&buf,1);

id为平台封装对应的i2c编号,0x40从机地址,buf中存储的是对传感器的操作,1是传送的指令长度;

问题2:提示IO error

原因:连线问题,i2c是片内通信,当时传感器和开发板之间用杜邦线连接,可能是i2c不稳定的原因。也有可能是平台不稳定原因。后期在开发板上找到刚好对应的接口。

问题3:温度读写错误

原因:湿度正常,怀疑是传感器问题,但鉴于只有一个传感器,尚未确定。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值