#define BHAddRead 0x47 // 从机地址+最后读方向位 #define BHPowDown 0x00 // 关闭模块 #define BHPowOn 0x01 // 打开模块等待测量指令 #define BHReset 0x07 // 重置数据寄存器值在PowerOn模式下有效 #define BHModeH1 0x10 // 高分辨率 单位1lx 测量时间120ms #define BHModeH2 0x11 // 高分辨率...
define BH1750_I2C_SCL_PIN GPIO_Pin_6/* 连接到SCL时钟线的GPIO */#define BH1750_I2C_SDA_PIN GPIO_Pin_7/* 连接到SDA数据线的GPIO *//* 定义读写SCL和SDA的宏,已增加代码的可移植性和可阅读性 */#define BH1750_I2C_SCL_1() GPIO_SetBits(BH1750_GPIO_PORT_I2C, BH1750_I2C_SCL_PIN)/* S...
四.代码实例 4.1 bh1750.c源文件 #include "bh1750.h" /* 应用说明: 在访问I2C设备前,请先调用 i2c_CheckDevice() 检测I2C设备是否正常,该函数会配置GPIO */ static void I2C_BH1750_GPIOConfig(void); /* *** *函数名: i2c_Delay * 功能说明: I2C总线位延迟,最快400KHz *形 参:无 *返回值: 无...
BH1750_Init(); while (1) { float light = BH1750_ReadLightIntensity(); printf("Light Intensity: %.2f lx\n", light); HAL_Delay(1000); } } 5. 注意事项 I2C地址:确保BH1750的I2C地址与代码中的设置一致。 电源要求:BH1750可以在2.5V至3.6V的电源电压下工作,确保电源供应稳定。 数据转换:从BH1...
BH1750引脚初始化代码如下: GPIO_InitStruct.Pin = B_SCL_Pin|B_SDA_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; //输出模式 GPIO_InitStruct.Pull = GPIO_PULLUP; //上拉 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); ...
STM32+BH1750光敏传感器获取光照强度 一、环境介绍 MCU:STM32F103ZET6 光敏传感器:BH1750数字传感器(IIC接口) 开发软件:Keil5 代码说明:使用IIC模拟时序驱动,方便移植到其他平台,采集的光照度比较灵敏. 合成的光照度返回值范围是 0~255。 0表示全黑 255表示很亮。
在代码中,使用HAL库函数初始化了I2C接口和USART串口,同时使用了STM32提供的延时库函数HAL_Delay()。在主函数中,首先定义了一个缓冲区buf[2]和一个变量value,缓冲区buf[2]用于存储从BH1750读取的光照强度数据。变量value用于存储经过单位转换后的光照强度值。
下面是使用标准库函数STM32F103C8T6读取BH1750光照强度数据并打印到串口的代码: #include"main.h"#include"stm32f1xx_hal.h"#include"stdio.h"#defineBH1750_ADDRESS0x23//BH1750地址I2C_HandleTypeDef hi2c1;//IIC外设句柄voidSystemClock_Config(void);staticvoidMX_GPIO_Init(void);staticvoidMX_USART1_UART_...
使用到的硬件有:STM32F103C8T6最小系统板,USB转TTL模块(串口通信),光照度小球(主芯片BH1750)连...
光敏传感器: BH1750数字传感器(IIC接口) 开发软件: Keil5 代码说明:使用IIC模拟时序驱动,方便移植到其他平台,采集的光照度比较灵敏. 合成的光照度返回值范围是 0~255。 0表示全黑 255表示很亮。 实测: 手机闪光灯照着的状态返回值是245左右,手捂着的状态返回值是10左右. 完整工程代码下载: https://download...