Moxa Technologies W341 Manual De Usuario

Descargar
Página de 104
ThinkCore W311/321/341 Linux User’s Manual 
Programmer’s Guide 
 
6-7
The makefile is shown below: 
all:  
  arm-linux-gcc –o xxxx xxxx.c –lmoxalib 
 
UART 
The normal tty device node is located at 
/dev/ttyM0 … ttyM3
The W311/321/341 support Linux standard termios control. The Moxa UART Device API allows 
you to configure ttyM0 to ttyM3 as RS-232, RS-422, 4-wire RS-485, or 2-wire RS-485. The 
W311/321/341 support RS-232, RS-422, 2-wire RS-485, and 4-wire RS485. 
You must
 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 to set 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); 
Example to get the baudrate 
 #include <moxadevice.h> 
 #include <termios.h> 
 struct termios term; 
 int 
  fd, speed; 
 fd = open(“/dev/ttyM0”, O_RDWR); 
 tcgetattr(fd, &term);