我是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;
//#]
}
由于