简介:
本文档总结自B站教程“博流智能BL618开发教程9——BL618添加自定义传感器驱动,以I2C设备BH1750为例”,本节内容以I2C设备BH1750为例,介绍如何添加传感器驱动。
视频链接:https://www.bilibili.com/video/BV1EV411M7CX/?spm_id_from=333.999.0.0
硬件介绍:
BH1750是一个基于I2C接口的光照强度传感器。
![](https://verimake.com/assets/files/2023-08-07/1691392769-83697-image.png)
BH1750采集光照强度的步骤如下:
- 单次采集流程:连接电源 - 发送Power On指令 - 发送*单次采集指令 - 采集一次数据 - Power Down
- 连续采集流程:连接电源 - 发送Power On指令 - 发送连续采集指令 - 持续采集数据
![](https://verimake.com/assets/files/2023-08-07/1691392783-349531-image-1.png)
具体指令集如下。
![](https://verimake.com/assets/files/2023-08-07/1691392788-397349-image-2.png)
BH1750驱动:
打开bouffalo_sdk_vmg0\bsp\board\common\BH1750
项目。
![](https://verimake.com/assets/files/2023-08-07/1691392792-501886-image-3.png)
代码简介
bh1750.h:
![](https://verimake.com/assets/files/2023-08-07/1691392798-142728-image-4.png)
bh1750.c:
![](https://verimake.com/assets/files/2023-08-07/1691392810-309109-image-5.png)
![](https://verimake.com/assets/files/2023-08-07/1691392814-8124-image-6.png)
计算光照强度的公式如下,将高八位和低八位数据拼接后,除以1.2可得出光照强度。
![](https://verimake.com/assets/files/2023-08-07/1691392818-438113-image-7.png)
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驱动被添加到工程中。
![](https://verimake.com/assets/files/2023-08-07/1691392824-908174-image-8.png)
样例项目
将bouffalo_sdk_vmg0\examples\helloworld
项目复制到bouffalo_sdk_vmg0\examples\vmg0\
目录下,并将项目名改名为BH1750
。
按照以往的步骤修改flash_prog_cfg.ini
、Makefile
、CMakeLists.txt
三个编译文件。
![](https://verimake.com/assets/files/2023-08-07/1691392830-837309-image-9.png)
![](https://verimake.com/assets/files/2023-08-07/1691392834-911877-image-10.png)
![](https://verimake.com/assets/files/2023-08-07/1691392839-171842-image-11.png)
在proj.conf
文件中设置CONFIG_BSP_BH1750
的值为1以启用BH1750驱动。
![](https://verimake.com/assets/files/2023-08-07/1691392844-539697-image-12.png)
在main.c
文件中编写测试代码。
![](https://verimake.com/assets/files/2023-08-07/1691392849-659980-image-13.png)
编译、烧录,打开串口调试助手。
![](https://verimake.com/assets/files/2023-08-07/1691392853-973192-image-14.png)