采用4线制,SCK,MISO,MOSI,NSS,那自然是接受和发送是同时进行的。
所谓的 “接受和发送不能同时进行”那只是把同时接收的数据丢弃罢了。那么怎么完成数据收发,看对方的协议规定而定了。
数据发送过程
在写操作中,数据字被并行地写入发送缓冲器。
当从设备收到时钟信号,并且在MOSI引脚上出现第一个数据位时,发送过程开始(译注:此时第一个位被发送出去)。余下的位(对于8位数据帧格式,还有7位;对于16位数据帧格式,还有15位)被装进移位寄存器。当发送缓冲器中的数据传输到移位寄存器时,SPI_SP寄存器的TXE标志被设置,如果设置了SPI_CR2寄存器的TXEIE位,将会产生中断。
这是STM32 的写法,我想STM8应该也一样。
|