STM32 驱动 GY-302 光照传感器 BH1750 模块(软件IIC与硬件IIC驱动)

1.特别说明

? 要是不想看原理和过程,直接下拉找代码吧,都是测试过的,很稳定,有硬件I2C驱动的,也有软件模拟I2C驱动的,基于STM32F103系列和STM32F4系列实现,基于标准库实现,条理清晰。

2.软硬件硬件准备

? (1) Kile 5.27

? (2) 串口助手

? (3) STM32F103与STM32F4系列单片机

? (4) CH340 串口转 TTL 工具

? (5) BH1750-即-GY-302光照传感器

3.了解驱动原理

3.1.程序设计思路

接高电平的硬件地址和接低电平的硬件地址是不一样的:

? 接高电平硬件地址:0X5C (注意:这是高 7 位地址数据)

? 接低电平硬件地址:0X23 (注意:这是高 7 位地址数据)

器件地址(7位-用左移1位-最后1位为读写位–1为读-0为写)

3.3驱动时序

(uint16_t)Data_LX = (uint16_t)(H_data

接收用无符 短 8 位整形接收,移位对齐数据再相加就好了;

4.上代码

4.1硬件IIC驱动

? 特别说明,在刚开始硬件驱动的时候,出了个小问题:完全照着手册的时序写,就是会卡死在接收高 8 位数据的 EV7事件上;

? 解决办法:在发送读指令并接收到回应后(EV6 事件),主机给光照模块发送一个 ACK 信 ,相当于告诉它我们准备好接受数据了,然后等待光照模块发来数据(EV7事件),接着后面就没啥问题了。

4.1.1 适用STM32F103系列的硬件IIC驱动

BH1750.c

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月1日
下一篇 2022年5月1日

相关推荐