我们在器件初始化的时候遇到了这样的问题:当发送setlastaddress命令的时候最后PEC字节ic没有响应,导致通讯失败;之前的helloall和ROLLCALL命令均得到了正确的数据。现在是两个芯片连接,helloall设置的地址是0XE0,即第一个芯片的地址是A[0-4] 100000;ROLLCALL命令读回来的地址是1FA0和1F90,芯片个数也是正确的2个。紧接着发送setlastaddress命令,发送的数据书序是:广播命令、地址寄存器0X01、0X02、0X02和PEC字节,前面四个字节都得到了ic的响应,第五个PEC字节IC没有回应,导致通讯失败。PEC的数据是由前面四个字节按照CRC-8的算法生成的,算法源代码也一并附上。
void MAX11068_PEC_Calculation(U8 * pByteList, U32 NumberOfBytes, U8 *pCRCByte)
{
#define CRC8_POLY (0x07)
xdata U32 i;
xdata U8 j;
xdata U8 Remainder;
*pCRCByte = 0x00;
for(i = 0;i < NumberOfBytes;i++)
{
Remainder = *pCRCByte^pByteList[i];
for(j = 0;j < 8;j++)
{
if(Remainder&0x80 == 0x80)
{
Remainder = (Remainder << 1)^CRC8_POLY;
}
else
{
Remainder = (Remainder << 1);
}
Remainder = Remainder&0xff;
}
*pCRCByte = Remainder;
}
}
我要赚赏金打赏帖 |
|
|---|---|
| PCF8574功能模块及其使用被打赏¥20元 | |
| 传感器LSM6DSO及LIS3MDL的功能检测被打赏¥18元 | |
| LPS25HB气压传感器及其检测被打赏¥18元 | |
| HTS221温湿度传感器及其检测被打赏¥18元 | |
| 【S32K3XX】HSE FW 版本更新被打赏¥21元 | |
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
| TCS3472S传感器及其色彩检测被打赏¥19元 | |
| 【S32DS】S32K3 RTD7.0.1 HSE 组件配置报错问题解决被打赏¥27元 | |
| 【S32K3XX】MCME 启动 CORE1被打赏¥23元 | |
| AG32VH407下温度大气压传感器及其检测被打赏¥20元 | |
我要赚赏金
