Como definir uma porta serial para o modo RS-485?

2

Estou usando um conversor da porta serial para o usb e no Windows é possível abrir as propriedades da porta Serial e definir uma caixa de seleção RS-485, somente depois que eu conseguir receber dados do dispositivo. Como fazer o mesmo no Linux? Porque, por padrão, estou obtendo o mesmo resultado, como no Windows, com o RS-485 desmarcado:

Port name - /dev/ttyACM0; Method name - readBytes(); Serial port operation timeout (500 ms).
execute try 2 error: I/O exception - failed to read

Meu dispositivo é:

Bus 001 Device 008: ID 04e2:1411 Exar Corp.

setserial -a /dev/ttyACM0
/dev/ttyACM0, Line 0, UART: unknown, Port: 0x0000, IRQ: 0
        Baud_base: 115200, close_delay: 5, divisor: 0
        closing_wait: 300
        Flags: spd_normal low_latency
    
por Alex 30.10.2015 / 20:30

1 resposta

1

Você terá que escrever algum código C, conforme descrito no documento do kernel .

#include <linux/serial.h>
struct serial_rs485 rs485conf = {0};

int fd = open ("/dev/ttyACM0", O_RDWR);
if (fd < 0)...
rs485conf.flags |= SER_RS485_ENABLED;
if (ioctl (fd, TIOCSRS485, &rs485conf) < 0)...
    
por 31.10.2015 / 16:22