简介:
本文档总结自B站教程“博流智能BL618开发教程9——BL618添加自定义传感器驱动,以I2C设备BH1750为例”,本节内容以I2C设备BH1750为例,介绍如何添加传感器驱动。
视频链接:https://www.bilibili.com/video/BV1EV411M7CX/?spm_id_from=333.999.0.0
硬件介绍:
BH1750是一个基于I2C接口的光照强度传感器。
BH1750采集光照强度的步骤如下:
- 单次采集流程:连接电源 - 发送Power On指令 - 发送*单次采集指令 - 采集一次数据 - Power Down
- 连续采集流程:连接电源 - 发送Power On指令 - 发送连续采集指令 - 持续采集数据
具体指令集如下。
BH1750驱动:
打开bouffalo_sdk_vmg0\bsp\board\common\BH1750
项目。
代码简介
bh1750.h:
bh1750.c:
计算光照强度的公式如下,将高八位和低八位数据拼接后,除以1.2可得出光照强度。
IIC读取/发送数据时的内容格式请参考文档: https://bl-mcu-sdk.readthedocs.io/zh_CN/stable/api_reference/peripherals/i2c.html
添加驱动
打开bouffalo_sdk_vmg0\bsp\board\common\CMakeLists.txt
,仿照ES8388驱动的配置来写BH1750的配置。当项目中,CONFIG_BSP_BH1750
的值不为0时,BH1750驱动被添加到工程中。
样例项目
将bouffalo_sdk_vmg0\examples\helloworld
项目复制到bouffalo_sdk_vmg0\examples\vmg0\
目录下,并将项目名改名为BH1750
。
按照以往的步骤修改flash_prog_cfg.ini
、Makefile
、CMakeLists.txt
三个编译文件。
在proj.conf
文件中设置CONFIG_BSP_BH1750
的值为1以启用BH1750驱动。
在main.c
文件中编写测试代码。
编译、烧录,打开串口调试助手。