SPI协议如何校验? 有没有同一个数据包完成校验的方法?

2019-12-15 12:17发布

本帖最后由 wowangru 于 2018-11-7 13:58 编辑

SPI就像一个环形位移寄存器,本身没有校验。   没有不出错的通讯!    我现在想给SPI增加校验功能。  
   我如何才知道从机有没有正确接收呢?  从机发的数据主机有没有正确接收呢?   
   如果要直到是不是非得下一个数据包才能知道? 这样是不是效率会受影响!!


SPI  DMA接收完中断是否代表数据已经接收完成全部到了 接收数组?
SPI DMA发送完中断是否代表仅仅缓冲区数据空,但是有字节在位移寄存器里面 没有发送出去,请问有几个字节?假如我是按byte发送,如何解决这种情况呢,是否非得再往spi写入数据才能发送缓冲区剩余的数据? 这样每一帧会多无效的字节,如何解决呢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
23条回答
loveavr999
2019-12-17 02:46
wowangru 发表于 2018-11-7 12:33
也就是必须两个包才能直到有没有收发成功?

当时就可以知道

假设需要发100byte,定义b[101]
101保存crc
主机计算crc放入101里面,发101byte到从机,从机接收到第100byte时,可以计算前面100byte的crc,
在主机发第101byte时,从机把crc返回给主机。

主机发完第101后,收到从机的crc,一看,我操,不对啊,再来一次,如果对,就next

b里面也可以保存一个计数器

一周热门 更多>