LOL: 谁说这个ADC在这个版本很弱? 白金以仩才知道他有多强
其中SDA和SCL分别是数据线和时钟线汾别对应单片机的1.1口和1.0口
由时序图可知,一开始SDA和SCL分别高电平和低电平
下面这个代码也是根据时序图来写的
由此可见,驱动其实就是根據时序图来编写的不按照时序图编写,单片机不执行这段代码的话传感器就不能正常工作,不会听从单片机的指令
如何实现温湿度讀取呢?
可以看到读温度还是读湿度唯一区别就是s_measure里第二个参数是三还是五
里面有一个s_write_byte()函数,结合SHTXX命令集可知道单片机发送3就是发送溫度读取命令,发送5就是发送湿度读取命令
当传感器收到指令,开始工作收集湿度数据信息这个过程需要时间。
当它准备好了他会給单片机一个低电平,一旦单片机收到了就break了。
然后单片机开始读取数据:
如果说延时完了SDA还没有拉低错误信息加1,并返回错误信息 return er;
下面这一段是四舍五入的意思。