• 大小: 3KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-06-18
  • 语言: 其他
  • 标签: HDC1080  I2C  STM32F207  

资源简介

基于STM32F207的HDC1080的模拟I2C驱动程序,可以实现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位精度,温湿度一个命令同时输出,先输出温度,在输出湿度,关闭内部加热,自动复位
#define Configuration_2         0x3000  //温湿度14位精度,温湿度一个命令同时输出,先输出温度,在输出湿度,开启内部加热,自动复位


#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;  //设置GPIO模式  输出模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //设置输出频率
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)  //设置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


评论

共有 条评论