Загрузка данных


#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h> 
#include "wiringRP.h"
#include "spi.h"

void setup() {
    if(setupWiringRP(WRP_MODE_SUNXI) < 0) {
        exit(EXIT_FAILURE);
    }
    
    printf("--- Тест SPI0 Loopback ---\n");
    printf("Убедитесь, что пины MOSI и MISO для SPI0 соединены (например, пин 19 и 21).\n\n");
}

void loop() {
    int fd = spiSetup(SPI0_BUS, 1000000); // Инициализируем SPI0 на скорости 1 МГц
    
    if (fd < 0) {
        printf("Не удалось инициализировать SPI0. Проверьте вариант распиновки.\n");
        delay(5000);
        return; // Попробуем снова через 5 секунд
    }

    uint8_t tx_data[] = {0xAA, 0x55, 0xDE, 0xAD};
    uint8_t rx_data[sizeof(tx_data)] = {0};

    printf("Отправка данных: 0xAA 0x55 0xDE 0xAD\n");
    spiDataRW(fd, tx_data, rx_data, sizeof(tx_data));

    printf("Полученные данные: 0x%02X 0x%02X 0x%02X 0x%02X\n", 
           rx_data[0], rx_data[1], rx_data[2], rx_data[3]);

    if (memcmp(tx_data, rx_data, sizeof(tx_data)) == 0) {
        printf("Результат: УСПЕХ! Данные совпадают.\n\n");
    } else {
        printf("Результат: ОШИБКА! Данные не совпадают.\n\n");
    }

    spiRelease(fd);
    delay(5000); // Пауза перед следующим тестом
}

ONDESTROY(){
    releaseWiringRP();
    exit(0);
}

MAIN_WIRINGRP();