如何通过SPI传输数据(我得到一个空缓冲区)

时间:2017-12-18 14:31:54

标签: c++ spi

我是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;


    //#]
}

由于

0 个答案:

没有答案