注:使用Keil的话,工具链选择MDK-ARM,STM32CubeIDE选择STM32CubeIDE,CLion选择SW4STM32。 二、BH1750驱动程序 通过模拟IIC信号实现 bh1750.h #ifndef BH1750_BH1750_H#define BH1750_BH1750_H#include"main.h"#define scl GPIO_PIN_6#define sda GPIO_PIN_7#define SlaveAddress 0x46//ADDR接GND时的器件...
#include "stm32f1xx_hal.h" #include "bh1750.h" // BH1750 I2C地址 #define BH1750_ADDR 0x23 // BH1750初始化函数void BH1750_Init(void) { // 初始化I2C HAL_I2C_Init(&hi2c1); // 写入寄存器,唤醒BH1750 HAL_I2C_Mem_Write(&hi2c1, BH1750_ADDR, BH1750_PWR_MGMT, I2C_MEMADD_SIZE_...
#ifndef __IIC_H#define__IIC_H#include"main.h"#defineSDA2_IN() {GPIOB->CRH&=0XFFFFFF0F;GPIOB->CRH|=(u32)8<<4;}#defineSDA2_OUT() {GPIOB->CRH&=0XFFFFFF0F;GPIOB->CRH|=(u32)3<<4;}#defineIIC2_SCL PBout(8)//SCL#defineIIC2_SDA PBout(9)//SDA#defineREAD2_SDA HAL_GPI...
//IO方向设置 #define SDA_IN() {IIC_SDA_GPIO_Port->CRH&=0XFFFFFF0F;IIC_SDA_GPIO_Port->CRH|=(u32)8<<4;} #define SDA_OUT() {IIC_SDA_GPIO_Port->CRH&=0XFFFFFF0F;IIC_SDA_GPIO_Port->CRH|=(u32)3<<4;} #define IIC_SCL PCout(8) //SCL #define IIC_SDA PCout(9) //SDA #...
在代码中,使用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_...
介绍:精通STM32开发(寄存器、HAL库)、PCB电路设计、Linux下进程、线程、网络编程。 1 概述 BH1750FVl 是一种用于 RC 总线接口的数字环境光传感器LC。该芯片最适合于获取移动电话液晶显示器和按键背光功率的环境光数据。采集范围在(1~65535 l×)之间。
在代码中,使用HAL库函数初始化了I2C接口和USART串口,同时使用了STM32提供的延时库函数HAL_Delay()。在主函数中,首先定义了一个缓冲区buf[2]和一个变量value,缓冲区buf[2]用于存储从BH1750读取的光照强度数据。变量value用于存储经过单位转换后的光照强度值。
[HAL]STM32F1光照度测量BH1750 串口输出硬件连接:使用到的硬件有:STM32F103C8T6最小系统板,USB转TTL模块(串口通信),光照度小球(主芯片BH1750)连接图:使用到的引脚:除了RCC和下载方式SYS外只需要配置IIC和USARTSTM32CubeMX配置:具体配置都默认时钟框图:生成工程后先搞一下printf函数重定义:把以下代码粘贴在usart....
使用到的硬件有:STM32F103C8T6最小系统板,USB转TTL模块(串口通信),光照度小球(主芯片BH1750)连...