Я новичок в коммуникации 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;//#]
}
Спасибо
Задача ещё не решена.
Других решений пока нет …