// PIC18 in C - Raspberry Pi code - Versione 0.1 - giugno 2016 // Copyright (c) 2016, Vincenzo Villa // Creative Commons | Attribuzione - Condividi allo stesso modo 4.0 Internazionale (CC BY-SA 4.0) // Creative Commons | Attribution-Share Alike 4.0 Unported // https://www.vincenzov.net/tutorial/PIC18/UART-MCC.htm // Raspberry Pi code - Serial comunication // Note: // Compile: gcc -Wall -std=c99 -o pic pic.c -lwiringPi // Remember: export WIRINGPI_GPIOMEM=1 // Remember: enable UART in /boot/config.txt // Remember: disable serial terminal with raspi-config #include #include #include #include #include #include #define MAGIC 0xAA #define PACK_SIZE 4 int main(void) { int fd; unsigned char dataToSend[PACK_SIZE]; wiringPiSetup(); dataToSend[0] = MAGIC; dataToSend[1] = 0x11; dataToSend[2] = 0x22; if ((fd = serialOpen("/dev/ttyAMA0", 115200)) < 0) { printf("Unable to open serial device: %s\n", strerror(errno)); return 1; } while (1) { for (int j = 0; j < 6; j++) { dataToSend[3] = j; for (int i = 0; i < PACK_SIZE; i++) serialPutchar(fd, dataToSend[i]); usleep(100); if (serialDataAvail(fd) >= 4) { for (int i = 0; i < PACK_SIZE; i++) printf("0x%X ", serialGetchar(fd)); printf("\n"); } sleep(1); } } serialClose(fd); return 0; }