如上图, 移位寄存器(shift register)及 接收FIFO (RXDATA)对程序来说是透明的。
唯一可访问的 Receive Data Register (ECSPIx_RXDATA) 只能访问 接收FIFO的 top 字。如下:
当把 spi2 配置成为 slave 模式时,外部的主spi 端将数据发送到 spi 的 MOSI 线上,mosi线上的数据是按bit 传输的。
在 bpw 配置为 32时,移位寄存器中 每满 32bit 才可以向 接收FIFO 打一个字。
如果,mosi线上只发送了 31个bit的数据,那么 是不会向 接收FIFO中推送的。这时,除非给 spi2 进行复位操作,不然
从ECSPIx_RXDATA 中读到的数据肯定是错误的。后面发送的一个字,会把最高bit 填充到上个没有满的字中,但后面发送
的字由于最高位已经补给了上一个字,这样,后面的字就不会再是正确值了。
时间: 2024-10-11 02:36:39