Я безуспешно пытался реализовать SPI-связь между Raspberry Pi 2 B + (ведущим) и Arduino Uno Rev3 (ведомым), но безуспешно.
Я использовал руководство: http://mitchtech.net/raspberry-pi-arduino-spi/ < / а>
Однако предлагаемые там коды не работают должным образом. Я уже искал решение в Интернете, но не смог его найти. Я использую тот же код для arduino на сайте, но использую следующий код для raspberry pi:
/**
* Hello, SPI!
*/
#include <stdio.h> // printf()
#include <signal.h> // signal()
#include <errno.h> // strerro
#include <string.h>
#include <wiringPi.h> // GPIO
#include <wiringPiSPI.h> // SPI
int volatile interrupt = 0;
#define len_max 100
int volatile len = 0;
unsigned char buffer[len_max];
static const int speed = 500000;
int const CE0 = 0;
void sig_handler(int signo)
{
if(signo == SIGINT)
{
interrupt = 1;
}
}
void setup(void)
{
signal(SIGINT, sig_handler);
wiringPiSetupGpio () ;
if(wiringPiSPISetup(CE0, speed) < 0)
{
printf("SPI setup failed: %s\n", strerror(errno));
interrupt = 1;
}
printf("System ready.\n");
}
void loop(void)
{
memcpy(buffer, "Hello world!\n", sizeof buffer);
len = 12;
if( wiringPiSPIDataRW (CE0, buffer, len) < 0)
printf("Error while recieving mesage\n");
printf("Received mesage: %s \n", buffer);
delay(1000);
}
void close(void)
{
printf("Ending activities.\n");
}
int main(void)
{
setup();
while(!interrupt) loop();
close();
return 0;
}
Этот код возвращает мне только мусор. Я понятия не имею, что мне делать.