单片机TM4C123学习(七):I2C模块(温度传感器)

时间:2022-02-05 17:52:15

I2C(Inter Intergrated Circuit)总线是Philips公司推出的一种用于IC器件之间连接的二线制串行扩展总线,它通过两根信号线(SDA-串行数据线;SCL-串行时钟线)在连接到总线上的器件之间传送数据,并根据地址来识别每个器件。

1.头文件和变量定义

#include "TMP75.h"

volatile bool g_bTMP75Done;

2.初始化

TMP75Init();

//函数具体内容

void TMP75Init(void)
{ SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C1);
//
// 引脚时钟使能
//
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); //
// I2C 引脚设置
//
GPIOPinTypeI2CSCL(GPIO_PORTA_BASE, GPIO_PIN_6);
GPIOPinTypeI2C(GPIO_PORTA_BASE, GPIO_PIN_7); GPIOPinConfigure(GPIO_PA6_I2C1SCL);
GPIOPinConfigure(GPIO_PA7_I2C1SDA); //
// I2C1 外设使能
//
SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C1); //
// 配置 I2C1
//
I2CMasterInitExpClk(I2C1_BASE, SysCtlClockGet(), true); TMP75ResolutionSet();
}

3.使用示例(main)

Temp=temp_read();
Tempvalue=(int)Temp;

4.功率电阻(PF2)

发热

 GPIOPinTypeGPIOOutput(GPIOF,Pin2);
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,<<);

不发热

GPIOPinTypeGPIOInput(GPIOF,Pin2);