Как передать данные через 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

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]