TMP101是一款通过i2c读取温度的传感器,支持设置温度上下限及报警。总共5个寄存器:指针寄存器,温度数据寄存器(地址0x00),配置寄存器(0x01),温度报警下限寄存器(0x02),温度报警上限寄存器(0x03)。每次操作都是默认访问指针寄存器,告诉要指针寄存器接下来访问的是剩下4个当中的哪一个。
i2c地址:0x90
1. 初始化时首先要设置配置寄存器:
i2c_write(I2C2, 0x90, 0x01, 0xFA), 寄存器地址为0x01, 设置的数据为0xFA,表示不进入省电模式,连续采样,采样精度为12bits,转换时间需要320ms。
2. 定时获取温度:
uint8_t data[2] = {0};
i2c_read(I2C2, 0x91,0x00, data, sizeof(data)), 寄存器地址为0x00,因为上面设置的是12bits,所以需要连续读取2个字节。读取后数据需要做移位处理。12bits数据是从高位开始传输。
uint16_t temp = (data[0]<<4) | (data[1]>>4);