资源简介
基于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样条曲线、曲面绘制软件
相关资源
- bh1750光照数字传感器在cc2530协议栈的
- cubeMX视频教程stm32hal库函数cubemx实战讲
- STM32 hal库操作ESP8266
- STM32使用HAL库移植freemodbus-v1.6
- 基于STM32HAL库的AD9834驱动代码修正.z
- BH1750驱动程序
- AVR 模拟IIC总线
- pic io口模拟iic的mcp7940代码
- BH1750光强传感器zigbee程序
- hal库硬件spi&模拟spi通信rn8209
- HAL库版本,硬件SPI驱动74HC595
- STM32F103通过模拟IIC读取LIS3DH 解析数据
- 软件模拟IIC主从机
- STM8S003模拟IIC总线读取PCF8563
- STM32HAL库使用NTC热敏电阻读取温度代码
- 基于STC89c52 的环境数据采集 DHT11+BH
- STM32 硬件IIC读取BH1750
- C51双机模拟IIC通信源代码.rar
- STM32HAL库驱动SPILCD代码
- 51单片机模拟IIC协议读写EEPROM(24C02)
- VL53L0X_STM32例程
- BH1750光强度传感器资料
- 基于stm32f103c8t6的已实现模拟iic和模拟
- 模拟IIC读写at24c512
- HAL库stm32F429IG正交编码器
- sht10+bh1750+nrf24l01数据传输
- BH1750 for CC2530
- SHT75温湿度气压传感器驱动程序
- STM32矩阵键盘HAL库实现,轮询方式,方
- HAL库驱动详解.pdf
评论
共有 条评论