Questions:SPI 使用 CRC 时,在数据的最后半个周期写 NTC 位(Next Transmission CRC),发出的 CRC 数是错误的,举例如下:发送数据 0x55,0xAA,0x66 在收到 0x66 返回的数据后(最后一个周期的上升沿),立马写 NTC 位,则会发出错误的 CRC 值(0x2A,CRC 计算实际应该是 0xAA),如下图(红框处写 NTC 位):
解决方式:
1. 保证 NTC 位的写入时机不在最后半个周期
2. 改用 DMA 传输方式,由硬件控制 CRC 发送
|