1.SHT20温湿度传感器的选型
虽然初步选择了ds18b20和dh11,但由于ARTIK平台提供的延迟函数usleep量级仅为10ms左右,时序不正确,无法进行正常的单总线驱动。 所以选择i2c驱动的SHT20。
问题分析1:usleep函数延迟。 TIZEN系统的工艺切换粒度最小为10ms左右,
知识点: sleep函数的作用,Linux进程切换的粒度
参考资料: https://blog.csdn.net/China clock/article/details/48712703
问题分析2 :通过编写最简单的while函数实现延迟,发现精度为100us级。 由于变量没有volatile,因此可能需要进一步尝试;
2. i2c驱动中遇到的问题
提出问题timed out,
原因:从站地址错误。 sdk提供的i2c_write直接用通常的逻辑写就可以了,所以不考虑地址的左移、读写标志等。
在程序中直接调用I2c_write(id,0x40,buf,1 )
id是与平台程序包对应的i2c号码,0x40从站地址,buf中保存的是针对传感器的操作,1是被传送的命令长度
提示问题IO error
原因:连接问题,i2c是片上通信,传感器和开发板之间通过杜邦线连接。 可能是i2c不稳定的原因。 可能是平台不稳定的原因。 在后开发板上找到正好对应的接口。
q3 :温度读写错误
原因:湿度正常,怀疑有传感器问题,但由于只有一个传感器,尚未确定。