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:温度读写错误

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

你可能感兴趣的:(Linux基础)