关于CH32V303CBT6 spi通讯问题

该芯片使用 硬件SPI ,作为从机模式。根据全双工通信,硬件控制NSS例程,能收到主机发送的数据,但是存在接收数据不全,顺序不对等问题。CS配置是浮空输入模式。

    if(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) != RESET)

    {

        RxData[Rxval++] = SPI_I2S_ReceiveData( SPI1 );    //接收数据

    }

主机发送19个字节,基本只能收到14个字节(数据内容也不太对),是要有需要其他配置的地方吗

这颗芯片,spi的缓冲区是多大~

您好,使用SPI作为从机,注意从机SPI的相关配置要和主机保持一致,比如时钟极性、相位、数据位宽等,此外要注意关于从机MOSI以及MISO的引脚配置是否正确,在我们EVT里面有SPI主从模式通信的例程,你可以看一下。此外,要注意保持时钟信号的稳定,可在时钟线上并两根地线保证信号稳定。不知道你所说的SPI缓冲区多大是什么意思,你可以自己定义一个缓冲区存放数据,此外若传输数据量较多,也可以考虑使用DMA,在我们EVT都有相关参考例程。后续若有问题,可通过邮箱(lzs@wch.cn)和我沟通,可顺便把你的工程发过来我这边看一下。下面链接为EVT的下载链接:

/downloads/CH32V307EVT_ZIP.html?



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