I'm trying to send some data to my arduino mega 2560 using serial communication.
I'm using the exemple that I found here without success.
Every site I read say that I can send data to the arduino board like writing to any file on ubuntu.
But I alway get Segmentation fault
Here is my code
#include <stdio.h>
#include <string.h>
char arduinoPort[] = "/dev/ttyACM0";
int main() {
char buffer[] = {'1'};
FILE *usb_port;
usb_port = fopen(arduinoPort, "rwb");
fwrite(buffer, sizeof(char), sizeof(buffer), usb_port);
fclose(usb_port);
return 0;
}
-
why are you not using the arduino IDE?jsotola– jsotola2019年07月03日 04:20:48 +00:00Commented Jul 3, 2019 at 4:20
-
1@jsotola, because they write for PCJuraj– Juraj ♦2019年07月03日 05:28:34 +00:00Commented Jul 3, 2019 at 5:28
1 Answer 1
Your program works flawlessly on my Ubuntu 18.04. I would guess that you
have a problem with your setup (flaky USB port, permission problems...)
rather than the program itself. Still, I would recommend you add some
error checking: right after the fopen()
call,
if (!usb_port) {
perror(arduinoPort);
return 1;
}
I would expect you see something like
/dev/ttyACM0: No such file or directory
or
/dev/ttyACM0: Permission denied
that could help you pin down the real problem.
-
1Thank you so much. It wasn't working because i opened the serial monitor and because the message i could see it. When serial monitor is opened the serial is busy.Shinforinpola– Shinforinpola2019年07月03日 12:00:31 +00:00Commented Jul 3, 2019 at 12:00