1、其实,不需要看单工还是双工通信,简单粗暴一点设为全双工都可以解决很多非标准spi的时序,最重要是学会看时序图。要么就2中情况:只发或者只收。
2、只发情况:这个简单,一个劲发就行了,比如spi的屏幕、spi的LED屏。
3、只收情况:这个一般是根据时钟相位来接收数据,如下图一个3线ADC时序图:(以硬件spi为例])
1)最少需要22个时钟才可完整获取16位数据,那么我需要发送3个字(非真实发送,只是产生24个时 钟);
2)时序从第六个时钟开始,为有效数据,最后2个时钟也为无效数据;
3)接收完成,从spi的数据寄存器读出数据,把无效的位去掉即为有效数据。假设读到3个字节数据,获取 有效数据为:(((recv_buff[0] << 16) | (recv_buff[1] << 8) | recv_buff[2])>>2)。
C:\Users\und\Desktop\QQ截图2017042717262
|