資源簡介
基于STM32F207的HDC1080的模擬I2C驅(qū)動程序,可以實現(xiàn)HDC1080的溫濕度讀取,注釋清楚,完美運行。

代碼片段和文件信息
/**************************************************************************//**
?*?@file?????HDC1080.c
?*?@version??V3.00
?*?$Revision:?2?$
?*?$Date:?18/08/17?10:22a?$
?*?@brief
?*???????????Show?a?Master?how?to?access?Slave.
?*???????????This?sample?code?needs?to?work?with?I2C_Slave.
?*?@note
?*?Copyright?(C)?2018?CHN?Spec?Technology?Corp.?All?rights?reserved.
?*
?******************************************************************************/
#include?“main.h“
/*---------------------------------------------------------------------------------------------------------*/
/*?Global?variables????????????????????????????????????????????????????????????????????????????????????????*/
/*---------------------------------------------------------------------------------------------------------*/
#define?HDC1080_I2C_ADDR????????0x80????//0x40?<1
#define?Temperature?????????????0x00????//0x0000?Temperature?measurement?output
#define?Humidity????????????????0x01????//0x0000?Relative?Humidity?measurement?output
#define?Configuration???????????0x02????//0x1000?HDC1080?configuration?and?status
#define?Manufacturer_ID?????????0xFE????//0x5449?ID?of?Texas?Instruments
#define?Device_ID???????????????0xFF????//0x1050?ID?of?the?device
#define?Manufacturer_ID_value???0x5449
#define?Device_ID_value?????????0x1050
#define?Configuration_1?????????0x1000??//溫濕度14位精度,溫濕度一個命令同時輸出,先輸出溫度,在輸出濕度,關(guān)閉內(nèi)部加熱,自動復(fù)位
#define?Configuration_2?????????0x3000??//溫濕度14位精度,溫濕度一個命令同時輸出,先輸出溫度,在輸出濕度,開啟內(nèi)部加熱,自動復(fù)位
#define?HDC_I2C_SCL_H?GPIO_SetBits(GPIOBGPIO_Pin_10)
#define?HDC_I2C_SCL_L?GPIO_ResetBits(GPIOBGPIO_Pin_10)
#define?HDC_I2C_SDA_H?GPIO_SetBits(GPIOBGPIO_Pin_11)
#define?HDC_I2C_SDA_L?GPIO_ResetBits(GPIOBGPIO_Pin_11)
float?HDC_TEMPHDC_RH;??//HDC1080的溫度和濕度
/*******************************************************************************
*?Function?Name??:?HDC1080_I2C_Init
*?Description????:?初始化HDC1080的模擬I2C接口
*?Input??????????:?None
*?Output?????????:?None
*?Return?????????:?None
*******************************************************************************/
void?HDC1080_I2C_Init(void)
{
GPIO_InitTypeDef?GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_AHB1Periph_GPIOB?ENABLE);??//PB?時鐘使能
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_10|GPIO_Pin_11;??
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;??//設(shè)置GPIO模式??輸出模式
GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;??//設(shè)置輸出頻率
GPIO_InitStructure.GPIO_OType?=?GPIO_OType_PP;??//推挽輸出
GPIO_InitStructure.GPIO_PuPd?=?GPIO_PuPd_UP;??//上拉
GPIO_Init(GPIOB?&GPIO_InitStructure);??//初始化?GPIO
GPIO_SetBits(GPIOBGPIO_Pin_10|GPIO_Pin_11);?//PB10PB11?輸出高???SDA,SCL初始化高電平
}
void?I2C_SDA_OUT(void)??//設(shè)置SDA為輸出
{
GPIO_InitTypeDef?GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType?=?GPIO_OType_PP;??//推挽輸出
GPIO_InitStructure.GPIO_PuPd?=
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????13660??2018-08-27?20:44??HDC1080.c
-----------?---------??----------?-----??----
????????????????13660????????????????????1
評論
共有 條評論