CC2538软件CRC触发错误响应中断问题
您好!我正在使用CC2538和contiki 3.0做收发包实验,使用默认的硬件CRC收发包没有问题,现在为了在数据包后面加入一点其他数据mydata,不得不改用软件CRC,可以收到数据包的内容,但是每次收包后都还会触发错误响应中断处理函数,然后把整个RF模块再初始化一遍。
软件CRC具体实现如下:
1. 初始化时候先将:
RFCORE_XREG_FRMCTRL0的第6位AUTOCRC设为0
2. 数据包准备:
//(1)前面先写入要发送的payload和后加的数据mydata,total_len长度为payload和mydata的长度之和
cc2538_write_FIFO_buf(payload, payload_len);
cc2538_write_FIFO_buf(mydata, mydata_len);
//(2)下面软件计算CRC值
unsigned short test_software_crc = crc16_data(payload, total_len + CHECKSUM_LEN, 0);
//(3)将软件CRC写入最后2字节checksum中
cc2538_write_FIFO_buf(&test_software_crc, CHECKSUM_LEN);
每次收包RFCORE_SFR_RFERRF寄存器中读到的2组错误信息:
RF Error: 0x00000004
RF Error: 0x00000002
应该分别对应第2位RXOVERF和第1位RXABO。每次收包都会有这样的错误,然后初始化RF模块。
试着在RF初始化的时候将RFCORE_XREG_FRMFILT0寄存器最低位Frame Filtering使能位设为0。但还是会触发上述的错误。这是为什么呢?
望不吝赐教,感谢!
每次可以收到我想要的东西,但同时会触发错误响应中断处理函数,实在是很困惑。