SPI可以全双工传输数据,SPI进行数据传输有主机和从机,主机有片选信号,时钟,数据发送,数据接收。从机根据主机的时钟和片选发送和接收数据。这种接口在发送一个数据的同时必须也接收一个数据,因此发送和接收数据并不像串口可以使用空闲中断那样随意。在接收不定长数据的时候不是很方便。如果想使用SPI进行全双工高速传输,那就必须要知道要发送和接收的数据数量。
可以采用以下这样的办法,SPI一直不停的进行数据传输,每次发送100字节。主机发送
0xA1(有效数据帧头,一个字节)+数据长度(两个字节)+0x00(97个字节)
0xA2(无效数据帧头,一个字节)+0x00(99个字节)。
从机发送
0xA3(有效数据帧头,一个字节)+数据长度(两个字节)+0x00(97个字节)
0xA4(无效数据帧头,一个字节)+0x00(99个字节)。
这样不停传输,最多损失100个字节(这个协议只是举个例子,可根据使用者要求自行更改),对于需要长时间持续双工通信来说可以提高传输效率。
领取专属 10元无门槛券
私享最新 技术干货