Последовательная связь между ПК и Arduino с использованием C
Я пытаюсь отправить некоторые данные на arduino mega 2560, используя последовательную связь.
Я использую пример, который безуспешно нашел здесь.
На каждом сайте, который я читал, говорится, что я могу отправлять данные на плату arduino так же, как писать в любой файл в Ubuntu.
Но я всегда получаю сообщение Ошибка сегментации
Вот мой код
#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;
}
@Shinforinpola, 👍0
Обсуждение1 ответ
Лучший ответ:
Ваша программа безупречно работает на моем Ubuntu 18.04. я бы предположил, что ты
возникли проблемы с настройкой (ненадежный USB-порт, проблемы с разрешениями...)
а не сама программа. Тем не менее, я бы порекомендовал вам добавить немного
проверка ошибок: сразу после вызова fopen()
,
if (!usb_port) {
perror(arduinoPort);
return 1;
}
Я ожидаю, что вы увидите что-то вроде
/dev/ttyACM0: No such file or directory
или
< pre class="lang-none prettyprint-override">/dev/ttyACM0: Отказано в доступе
это может помочь вам выявить настоящую проблему.
Большое спасибо. Это не работало, потому что я открыл последовательный монитор и потому что сообщение я мог видеть. Когда серийный монитор открыт, серийный номер занят., @Shinforinpola
- C: Нет связи с подключенным последовательным портом?
- Как разделить входящую строку?
- Какова максимальная длина провода для последовательной связи между двумя Arduino?
- Последовательная связь между двумя Arduino (запрос и получение)
- Не нашел датчик отпечатков пальцев :( Arduino Mega 2560 Adafruit Fingerprint Sensor
- Модуль SIM808: команда определения местоположения GSM (AT+CIPGSMLOC=1,1) дает неверное значение после выполнения команды отправки сообщения (AT+CMGS=+91xxxxxxxx)
- Как связаться с ESP8266 ESP01, отправив данные через программный сериал на Arduino Uno?
- Как правильно получить MIDI с Arduino, с 6n138?
почему вы не используете arduino IDE?, @jsotola
@jsotola, потому что они пишут для ПК, @Juraj