CH565的SPI,能否做主机发送SPI数据的同时,把从机的返回数据同步接收到

贵司的技术您好,有个2个有关CH565的SPI问题,想请教下:

1、CH565的SPI,能否做主机发送SPI数据的同时,把从机的返回数据同步接收到?

2、CH565在调用如下DEMO板的SPI0_RecvS程序时候,主机SPI发送的MOSI数据是多少,我用示波器看到上面有数据,但是不清楚这些数据具体是怎么放进去的,还是随机发送的?


// SPI获取从机数据

void SPI0_RecvS( UINT8 *pbuf, UINT16 len )

{

   UINT16  readlen;

   

   readlen = len;

   R8_SPI0_CTRL_MOD |= RB_SPI_FIFO_DIR;       //设置数据方向为输入

   R16_SPI0_TOTAL_CNT = len;                  //设置需要接收的数据长度,FIFO方向为输入长度不为0则会启动传输

   R8_SPI0_INT_FLAG = RB_SPI_IF_CNT_END;

   while( readlen )

   {

      if( R8_SPI0_FIFO_COUNT )

      {

         *pbuf = R8_SPI0_FIFO;

         pbuf++;

         readlen--;

      }

   }

}


您好,SPI在使用单字节模式的时候可以实现1中描述的功能,写R8_SPIx_BUFFER寄存器之后读取,就是返回值,可以参考函数的实现

SPI0_MasterRecvByte

问题2:用到了FIFO模式,这个时候SPI是单向模式,作为输入的时候输出可以理解为 输出的是随机内容。同样的用569SPI FIFO功能的时候,SPI对端设备的数据传输逻辑也要按照半双工设计。


只有登录才能回复,可以选择微信账号登录