这里参考了这篇文章(ARDUINO使用MLX90614红外温度传感器研究笔记_雨田大大的博客-CSDN博客_mlx90614红外传感器),构建了一个修改地址的程序关于crc校验的部分(CRC(循环冗余校验)在线计算_ip33.com,)自己可以在线运算
简单说一下过程,先写入一个地址(这里用的是默认 地址00)再写入寄存器地址(0x2E)低八位(0x3A)高八位(0x00)通过CRC8校验得到14,依次写入便可修改
这里附上源码
#include<Wire.h>
void setup() {
// put your setup code here, to run once:
Wire.begin();
Serial.begin(9600);
}
uint16_t result1;
void loop() {
// put your main code here, to run repeatedly:
//这里第一次写入00
Wire.beginTransmission(0x00);
Wire.write(0x2E);
Wire.write(0x00);
Wire.write(0x00);
Wire.write(0x6F);//这个是00 2e 00 00 CRC-8校验过来了
Wire.endTransmission();
delay(1000);
//这个是第二次修改地址
Wire.beginTransmission(0x00);
Wire.write(0x2E);
Wire.write(0x3A);
Wire.write(0x00);
Wire.write(0x14);//这个是00 2e 3a 00校验
Wire.endTransmission();
delay(1000);
//这个会访问地址的寄存器,在控制台打印出来
Wire.beginTransmission(0x00);
Wire.write(0x2E);
Wire.endTransmission(false);
Wire.requestFrom(0x00,3);
result1 =Wire.read();
result1 |=Wire.read()<<8;
Serial.println(result1,HEX);
}