问答

汇集网友智慧,解决技术难题

21ic问答首页 - GD32H737 SPI datasize = 16 bit时无法收发

GD32H737 spi 技术交流 嵌入式 国产芯片 MCU

GD32H737 SPI datasize = 16 bit时无法收发

Hi雪飘人间2024-08-12
这段代码执行的是SPI收发功能,使用仿真器debug时会停在spi_i2s_data_receive处(等待接收标志位),但是如果把datasize改成8bit就能正常收发数据,请问是什么原因呢?
uint32_t Spi_Transfer16(SPI_BusDef *spi, uint16_t *TxBuf, uint16_t *RxBuf,uint16_t len)
{
    uint32_t ret= 0;
    Spi_Nss(spi->Nss, 0);
    spi_master_transfer_start(spi->Periph, SPI_TRANS_START);
    for(int i = 0; i<len; i++)
    {
        while (RESET == (SPI_STAT(spi->Periph) & SPI_FLAG_TP));
        spi_i2s_data_transmit(spi->Periph, TxBuf[i]);
        RxBuf[i] = spi_i2s_data_receive(spi->Periph);
    }
    while (RESET == spi_i2s_flag_get(spi->Periph, SPI_FLAG_TC));
    Spi_Nss(spi->Nss, 1);
    return ret;
}
回答 +关注 9
2763人浏览 12人回答问题 分享 举报
12 个回答
12下一页

您需要登录后才可以回复 登录 | 注册