Я могу открыть последовательный порт, но я не могу правильно настроить этот порт для записи (/ dev/ttyUSB0).Не удалось настроить устройство ttyUSB0 (Arduino) на Ubuntu, C++
Кусок кода C++:
int
Platform::initConnection(const char* devicePath, int baudRate)
{
int fd = 0;
int ret = 0;
struct termios terminalOptions; // POSIX structure for configurating terminal devices
fd = open(devicePath, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
//fd = open(devicePath, O_RDWR | O_NOCTTY);
if (fd == -1)
{
this->setFail();
this->setErrorStr("Failed to open: " + (std::string)devicePath + ". " + (std::string)strerror(errno));
return -1;
}
memset(&terminalOptions, 0, sizeof(struct termios)); // Cleaning up the structure
cfmakeraw(&terminalOptions); //
cfsetspeed(&terminalOptions, baudRate);
/*terminalOptions.c_cflag = CLOCAL; // If CLOCAL is set, the line behaves as if DCD is always asserted.
// It is used when your device is local
terminalOptions.c_cflag |= CS8; // Character size mask
terminalOptions.c_cc[VMIN] = 24; // 1 second timeout
terminalOptions.c_cc[VTIME] = 0; // */
terminalOptions.c_cflag &= ~CRTSCTS;
terminalOptions.c_cflag |= (CLOCAL | CREAD);
terminalOptions.c_iflag |= (IGNPAR | IGNCR);
terminalOptions.c_iflag &= ~(IXON | IXOFF | IXANY);
terminalOptions.c_oflag &= ~OPOST;
terminalOptions.c_cflag &= ~CSIZE;
terminalOptions.c_cflag |= CS8;
terminalOptions.c_cflag &= ~PARENB;
terminalOptions.c_iflag &= ~INPCK;
terminalOptions.c_iflag &= ~(ICRNL|IGNCR);
terminalOptions.c_cflag &= ~CSTOPB;
terminalOptions.c_iflag |= INPCK;
terminalOptions.c_cc[VTIME] = 0.001; // 1s=10 0.1s=1 *
terminalOptions.c_cc[VMIN] = 0;
ret = ioctl(fd, TIOCSETA, &terminalOptions); // Configuring the device
if (ret == -1)
{
this->setFail();
this->setErrorStr("Failed to configure device: " + (std::string)devicePath + ". " + (std::string)strerror(errno));
return -1;
}
return fd;
}
Ошибка:
Failed to configure device: /dev/ttyUSB0. Inappropriate ioctl for device
Arduino UNO использует чипсет CH340.
Я понятия не имею, как решить эту проблему. Я надеюсь на вашу помощь. Благодаря!
Обновление: Вход с dmesg
[11840.346071] usb 2-1.2: new full-speed USB device number 5 using ehci-pci
[11840.439832] usb 2-1.2: New USB device found, idVendor=1a86, idProduct=7523
[11840.439844] usb 2-1.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[11840.439850] usb 2-1.2: Product: USB2.0-Serial
[11840.440472] ch341 2-1.2:1.0: ch341-uart converter detected
[11840.442452] usb 2-1.2: ch341-uart converter now attached to ttyUSB0
Вы установили Arduino от Ubuntu репозиториев? –
выполните dmesg после подключения вашего arduino UNO и добавьте этот журнал в свой вопрос. –
Если вы решили проблему другим способом, отправьте обходное решение в качестве ответа. –