Я пытаюсь установить связь с камерой Pixy 2 с помощью платы TI SimpleLink CC3220SF и с помощью SPI и FreeRTOS.
Мне кажется, что я получаю данные обратно с камеры Pixy, однако это не похоже вернуться так, как я ожидаю.
Для тестового кода, который я делаю, я должен получить 22 байта данных, и я посылаю переменную с 32 байтами для получения данных, однако, кажется, что он не начинает заполняться данными до 12-го байт.
Однако данные, которые возвращаются с 12-го байта и далее, кажутся правильными. Я не знаю, почему это происходит, любая помощь будет признательна
Я приложил свой код ниже. Еще раз спасибо за любую помощь.
SPI_Handle masterSpi;
SPI_Params spiParams;
SPI_Transaction transaction;
uint32_t i;
bool transferOK;
uint8_t versionRequest[] = {0xae, 0xc1, 0x0e, 0x00};
uint8_t j, recvBuf[32];
SPI_Params_init(&spiParams);
spiParams.frameFormat = SPI_POL1_PHA1;
spiParams.bitRate = 100000;
masterSpi = SPI_open(CONFIG_SPI_MASTER, &spiParams);
if (masterSpi == NULL) {
Display_printf(display, 0, 0, "Error initializing master SPI\n");
while (1);
}
else {
Display_printf(display, 0, 0, "Master SPI initialized\n");
}
transaction.count = 32;
transaction.txBuf = (void *) versionRequest;
transaction.rxBuf = (void *) recvBuf;
transferOK = SPI_transfer(masterSpi, &transaction);
if (transferOK) {
for (j=0; j<22; j++)
Display_printf(display, 0, 0, "%hhu: 0x%hhx\n", j, recvBuf[j]);
}
else {
Display_printf(display, 0, 0, "Unsuccessful master SPI transfer");
}
SPI_close(masterSpi);
Display_printf(display, 0, 0, "\nDone");
return (NULL);