资源简介
基于HAL库的BH1750驱动代码,通讯方式为模拟IIC,非常适合在使用hal库的stm开发版上移植(仅需改IO)

代码片段和文件信息
#include “BH1750.h“
uchar BUF[8]; //接收数据缓存区
int dis_data; //变量
int mcy; //表示进位标志位
float Value_GY_30;
void GPIOConfig(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB GPIO_PIN_0|GPIO_PIN_1 GPIO_PIN_RESET);
/*Configure GPIO pins : PB0 PB1 */
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB &GPIO_InitStruct);
// GPIO_InitTypeDef GPIO_InitStruct;
// /*开启GPIOB的外设时钟*/
// RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB ENABLE);
//
// GPIO_InitStruct.GPIO_Mode = GPIO_MODE_OUTPUT_PP;
// GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
// GPIO_InitStruct.GPIO_Pin = sda | scl ;
// GPIO_Init(GPIOB &GPIO_InitStruct);
}
//系统主频72MHZ
void delay_us(uint16_t us)
{
while(us--)
{
__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();
}
}
void Delay_mms(uint16_t tmp)
{
uint16_t i=0;
while(tmp--)
{
i=12000;
while(i--);
}
}
/***开始信号***/
void BH1750_Start()
{
HAL_GPIO_WritePin(GPIOB sdaGPIO_PIN_SET); //拉高数据线
HAL_GPIO_WritePin(GPIOB sclGPIO_PIN_SET); //拉高时钟线
delay_us(5); //延时
HAL_GPIO_WritePin(GPIOB sdaGPIO_PIN_RESET); //产生下降沿
delay_us(5); //延时
HAL_GPIO_WritePin(GPIOB sclGPIO_PIN_RESET); //拉低时钟线
}
/*****停止信号******/
void BH1750_Stop()
{
HAL_GPIO_WritePin(GPIOB sdaGPIO_PIN_RESET); //拉低数据线
HAL_GPIO_WritePin(GPIOB sclGPIO_PIN_SET); //拉高时钟线
delay_us(5); //延时
HAL_GPIO_WritePin(GPIOB sdaGPIO_PIN_SET); //产生上升沿
delay_us(5); //延时
}
/**************************************
发送应答信号
入口参数:ack (0:ACK 1:NAK)
**************************************/
void BH1750_SendACK(int ack)
{
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7947 2019-04-23 18:14 bh1750.c
文件 888 2019-04-23 18:55 BH1750.h
- 上一篇:食品类小程序
- 下一篇:b样条曲线、曲面绘制软件
相关资源
- STM32 DS3231驱动.zip
- stm32l0系列HAL库
- HAL库下的OLED移植
- STM32使用模拟IIC实现24C02读取
- HAL库的OLED 移植
- USART基于hal库stm32f407串口通讯.rar
- STM32F4基于HAL库的LCD显示实验
- stm32f103c8t6移植uC/OS-III基于HAL库的工程
- 基于STM32备份寄存器BKP实验
- STM32F1基本定时器
- HAL库函数说明
- STM32F429DISCOVERY外接SD卡使用SDIO4BIT方式
- HAL库函数手册
- BH1750光照模块
- STM32F030使用HAL库做低功耗
- 基于STM32 HAL库的定时任务调度器例程
- stm32智能寻迹避障小车代码
- GY-302 BH1750光照强度模块资料与代码
- STM32 HAL库版本 4线1602A程序
- STM32驱动BH1750环境光强度传感器(GY
- stm32f407 ili9341屏幕驱动 HAL库 带FreeR
- 完整工程串口12、DHT11、BH1750、mh-z14
- STM32使用cubemx和HAL库驱动ICM20602
- STM32F103 Hal库 EV1527 433M解码
- STM32F103+温湿度+光照强度+LN33无线网络
- MPU6050 DMP+ADXL345+NRF24L01+HAL库+STM32F103C
- hal库定时器触发adc dma采集
- STM32Cube HAL库操作系统+CAN收发配置
- STM32+超声波传感器HC_RS04+光照传感器
- BH1750FVI STM32F103 HAL库 硬件IIC例程
评论
共有 条评论