Привет, я пишу небольшой код для управления линиями DTR и RTS USB для последовательного порта. Преобразователь чипа FT232 на Linux (Mint Linux 13 Maya, x86).Неисправность в настройке контактов DTR RTS последовательного порта с использованием ioctl() Вызов в linux
Я успешно написал код для чтения и записи данных на чип FT232 с использованием терминалов. Теперь я хочу контролировать линии DTR и RTS, поэтому я использую вызов ioctl() для установки и очистки линий DTR и RTS.
здесь код
#include <stdio.h>
#include <fcntl.h> /* File Control Definitions */
#include <termios.h> /* POSIX Terminal Control Definitions */
#include <unistd.h> /* UNIX Standard Definitions */
#include <errno.h> /* ERROR Number Definitions */
#include <sys/ioctl.h> /* ioctl() */
main(void)
{
int fd; /*File Descriptor*/
int status;
fd = open("/dev/ttyUSB0",O_RDWR | O_NOCTTY); //Opening the serial port
ioctl(fd,TIOCMGET,&status); /* GET the State of MODEM bits in Status */
status |= TIOCM_RTS; // Set the RTS pin
ioctl(fd, TIOCMSET, status);
getchar(); //To view the change in status pins before closing the port
close(fd);
}
код успешно компилируется на GCC без errors.I подключили два светодиода на RTS и DTR линий FT232.Since РТС и DTR линии перевернутой, установка RTS будет выключите светодиод. Светодиод подключен к RTS и DTR.
На выполнение кода с помощью "Суда ./serial"
как RTS и DTR светодиоды погаснут, а не только RTS (как кодированный статус | = TIOCM_RTS;) и включите после GetChar().
Почему DTR идет LOW вместе с линией RTS? также Я не могу изменить другие модемные линии, такие как RI, DCD, DCD, DTR и т. Д., Используя TIOCM_CD, TIOCM_DTR и т. Д.?