[文章]初学 HarmonyOS 系统,给Hi3861L写温湿度传感器HUT21D的驱动

阅读量0
0
0
`大佬们已经写出了AHT20, OLED1306等I2C总线的驱动。作为学习模板,准备将HUT21D、BH1750的驱动,已经模拟单总线DHT11,18B20等移值到运行harmonyOS的Hi3861上。


通过实践,对鸿蒙硬件I2C的驱动有了一点了解。感觉库写的非常好,用户不需要管I2C的启动、停止、ACK、NACK等等,屏蔽了中断、寄存器等底层处理。。
总之,直接用3个库函数就好了。
例如:读取 BH1750
uint32_t retval = I2cWrite(BH1750FVI_I2C_IDX, BH1750FVI_WRITE_ADDR, &data);



附图:harmonyos 库函数 实现读取 HTU21D 的协议
每隔20ms读取一次.png


关键指令:
1、软复位0xFE(下条命令延时30ms).png


2、触发湿度转换命令0xF5 (转换时间15-20ms).png


3、读数据(NAK)未应答就每10ms读一次.png


4、读3字节数据(最后字节NAK).png


`[attach]965357[/attach]

回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友