Moxa DA-662A-I-8-LX [57/63] Example for setting the baudrate

Moxa DA-662A-I-8-LX [57/63] Example for setting the baudrate
DA-662A Series Software Programmer's Guide
5-10
swtd_close(swtdfd);
exit(1);
}
The makefile is shown below:
all:
arm-none-linux-gnueabi-gcc o xxxx xxxx.c lmoxalib
UART
The normal tty device node is located at /dev/ttyM0 ttyM15, and the modem tty device node is located at
/dev/cum0 cum15.
The DA-662A series supports Linux standard termios control. The Moxa UART Device API allows you to
configure ttyM0 to ttyM7 as RS-232, RS-422, 4-wire RS-485, or 2-wire RS-485. The DA-662A series supports
RS-232, RS-422, 2-wire RS-485, and 4-wire RS485.
You must use include <moxadevice.h>.
#define RS232_MODE 0
#define RS485_2WIRE_MODE 1
#define RS422_MODE 2
#define RS485_4WIRE_MODE 3
1. Function: MOXA_SET_OP_MODE
int ioctl(fd, MOXA_SET_OP_MODE, &mode)
Description
Set the interface mode. Argument 3 mode will pass to the UART device driver and change it.
2. Function: MOXA_GET_OP_MODE
int ioctl(fd, MOXA_GET_OP_MODE, &mode)
Description
Get the interface mode. Argument 3 mode will return the interface mode.
There are two Moxa private ioctl commands for setting up special baudrates.
Function: MOXA_SET_SPECIAL_BAUD_RATE
Function: MOXA_GET_SPECIAL_BAUD_RATE
If you use this ioctl to set a special baudrate, the termios cflag will be B4000000, in which case the B4000000
define will be different. If the baudrate you get from termios (or from calling tcgetattr()) is B4000000, you
must call ioctl with MOXA_GET_SPECIAL_BAUD_RATE to get the actual baudrate.
Example for setting the baudrate
#include <moxadevice.h>
#include <termios.h>
struct termios term;
int fd, speed;
fd = open(“/dev/ttyM0”, O_RDWR);
tcgetattr(fd, &term);
term.c_cflag &= ~(CBAUD | CBAUDEX);
term.c_cflag |= B4000000;
tcsetattr(fd, TCSANOW, &term);
speed = 500000;
ioctl(fd, MOXA_SET_SPECIAL_BAUD_RATE, &speed);

Содержание

Похожие устройства

Скачать