Передача сообщений SPI (чтение и запись) с использованием библиотеки spidev
Мне нужно передать сообщение изi
буфер в SPI, но мне также нужно записать сообщение вj
буфер с помощью библиотеки spidev. Кажется, я знаю, как отправить сообщение, но как сохранить ответ? Это код, который у меня есть до сих пор
// i is transfer buffer; j is read buffer; k is length
void spi_transfernb(char *i, char *j, uint32_t k)
{
struct spi_ioc_transfer spi[k];
for (int x = 0; x < k; x++)
{
memset(&spi[x], 0, sizeof(struct spi_ioc_transfer));
spi[x].tx_buf = (unsigned long) (i + x);
spi[x].rx_buf = (unsigned long) (i + x);
spi[x].len = 1;
spi[x].speed_hz = speed;
spi[x].bits_per_word = bits;
}
if (ioctl(fd, SPI_IOC_MESSAGE(k), spi) < 0)
{
perror("Error transferring data over SPI bus");
close(fd);
exit(-1);
}
}
Не могли бы вы помочь мне с этим? Буду премного благодарен.