Передача сообщений 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);
    }
}

Не могли бы вы помочь мне с этим? Буду премного благодарен.

0 ответов

Другие вопросы по тегам