我是SPI通讯的新手 . 我正在尝试发送32位数据 . 在下面的代码中,我有32位无符号发送数据缓冲区,并初始化32位长的伪接收缓冲区 . 我知道SPI同时发送和接收数据 . 我将Chipselect引脚设置为低电平,MOSI引脚设置为高电平,时钟设置为应用程序代码生成器中的模式(0,1) . 我的第一个想法是发送一个主命令从从器件读取一个特定的地址,但我收到一个空缓冲区 . 有人能给我一些建议吗?

u32 CO2_SpiDriver::getData(const u32 Buffer) {
    //#[ operation getData(u32)
    u32 transmitBuffer = Buffer;   //contains the data to be transmitted  
    u8 pBuffer_u8[4];
    memcpy(pBuffer_u8, &Buffer, 4); 
    u32 receive = 0U;  
    u8 pReceiverBuffer_u8[4];
    memcpy(pReceiverBuffer_u8, &receive, 4); //duummy buffer to receive data

        setCSpin(true); //Chip select pin active low   

        setMOSIpin(true); //set MOSI pin active high

        R_CSI20_Create();

        R_CSI20_Start(); //start the communication

       (R_CSI20_Send_Receive(pBuffer_u8, 4, pReceiverBuffer_u8));   

        return receive;


    //#]
}

谢谢