在调试温湿度传感器SHT30,遇到如下问题
1.读取数据时,只读取前面第一个数据,后面全部为0XFF
通过参考官方例程,以及以下的文章,修改,均未能解决读取数据的问题
- 《SHT30 读温湿度失败-STM32-F0/F1/F2专区-OpenEdv-开源电子网》(http://www.openedv.com/thread-91905-1-1.html)
- 《SHT30温湿度传感器STM32 IIC程序源码 - STM32/8 单片机论坛》(http://www.51hei.com/bbs/dpj-106853-1.html)
- 《调试SHT30出现问题,求助 - 电子技术交流 - 21ic电子技术论坛》(http://bbs.21ic.com/icview-2398418-1-1.html)
解决方法:在原先I2C代码的基础上,根据I2C对应时序,加入对应IO口相关的输入输出设置,
如
char iic_start(void)
{
TRISC = SDA_OUT;
I2C_SDA_1;
I2C_SCL_1;
__delay_us(5);
I2C_SDA_0;
__delay_us(5);
I2C_SCL_0;
return 0;
}
char iic_stop(void)
{
TRISC = SDA_OUT;
I2C_SCL_0;
I2C_SDA_0;
__delay_us(5);
I2C_SCL_1;
I2C_SDA_1;
__delay_us(5);
return 0;
}