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

yzz1630
发布于 2020-10-18 11:31
浏览
2收藏

大佬们已经写出了AHT20, OLED1306等I2C总线的驱动把它们作为学习模板,准备将HUT21D、BH1750的驱动,以及模拟单总线DHT11,18b20等移值到运行HarmonyOS的 Hi3861开发板上。


通过实践,对鸿蒙硬件I2C的驱动有了一点了解。感觉库写的非常好,用户不需要管I2C的启动、停止、ACK、NACK等等,屏蔽了中断、寄存器等底层处理。。
总之,直接用wifiiot_i2c.c 的3个库函数就好了。

初学 HarmonyOS 系统,给Hi3861L写温湿度传感器HUT21D的驱动-鸿蒙开发者社区

初学 HarmonyOS 系统,给Hi3861L写温湿度传感器HUT21D的驱动-鸿蒙开发者社区

 

例如:

使能I2C:

I2cInit(WifiIotI2cIdx id, unsigned int baudrate);

(先要配置好GPIO和I2C通道,Hi3861 有2个I2C通道.)

 

读取 BH1750
uint32_t retval = I2cWrite(BH1750FVI_I2C_IDX, BH1750FVI_WRITE_ADDR, &data);


写命令

uint32_t retval = I2cWrite(HTU21D_I2C_IDX, HTU21D_WRITE_ADDR, &data);

 

 

 

附图:harmonyos 库函数 实现读取 HTU21D 的协议
初学 HarmonyOS 系统,给Hi3861L写温湿度传感器HUT21D的驱动-鸿蒙开发者社区初学 HarmonyOS 系统,给Hi3861L写温湿度传感器HUT21D的驱动-鸿蒙开发者社区初学 HarmonyOS 系统,给Hi3861L写温湿度传感器HUT21D的驱动-鸿蒙开发者社区初学 HarmonyOS 系统,给Hi3861L写温湿度传感器HUT21D的驱动-鸿蒙开发者社区

已于2020-10-18 11:59:40修改
2
收藏 2
回复
举报
5条回复
按时间正序
/
按时间倒序
yzz1630
yzz1630

回复
2020-10-18 11:31:50
yzz1630
yzz1630

通过分析,最后把读取应答的延时调整为20MS ,减少重读次数。

 

回复
2020-10-18 11:32:58
yzz1630
yzz1630

wx5fc445c6f0850

:
 “请问下大佬,我用的是3861L的开发板,编译了官网的3861的工程,烧录进板子后一直打印这个Initail Fail, please check Soft and Chip ver,是需要设置成3861L的工程吗,找了很久也没找到怎么设置”

-----------------------------------

可以参考 快速开始 --先跑 Hello World 项目。
Hi3861 快速开始

已于2021-1-11 17:56:33修改
回复
2021-1-11 17:54:05
cqzxc
cqzxc

楼主!!DHT11 怎么使用了!!!求源码 谢谢 看的我头大 百度了好久!!我之前用esp8266 的 现在转鸿蒙 支持国产  但是发现鸿蒙没有dht11.h 这个东东!!我确实搞不懂了

回复
2021-8-1 00:52:35
千云山庄
千云山庄

一年过去了,兄弟的 ds18b20 写出来没有啊.

回复
2022-1-20 14:39:26
回复
    相关推荐