📄 comconfig.c
字号:
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <termios.h>#include <errno.h>#include <string.h>#define UART_RS485_CONFIG 0x5AA1typedef unsigned char U8;typedef unsigned short U16;typedef unsigned long U32;#define CMSPAR 010000000000void setTermios(struct termios * pNewtio, U16 uBaudRate){ bzero(pNewtio, sizeof(struct termios)); /* clear struct for new port settings */ //8N1 //pNewtio->c_cflag = uBaudRate | CS8 | CREAD | CLOCAL; //pNewtio->c_iflag = IGNPAR; //8E1 //pNewtio->c_cflag = uBaudRate | CS8 | CREAD | CLOCAL |PARENB; //pNewtio->c_iflag = 0; //8O1 //pNewtio->c_cflag = uBaudRate | CS8 | CREAD | CLOCAL |PARENB | PARODD; //pNewtio->c_iflag = 0; //8S1 //pNewtio->c_cflag = uBaudRate | CS8 | CREAD | CLOCAL |PARENB | CMSPAR; //pNewtio->c_iflag = 0; //8M1 pNewtio->c_cflag = uBaudRate | CS8 | CREAD | CLOCAL |PARENB | PARODD | CMSPAR; pNewtio->c_iflag = 0; pNewtio->c_oflag = 0; pNewtio->c_lflag = 0; //non ICANON /* initialize all control characters default values can be found in /usr/include/termios.h, and are given in the comments, but we don't need them here */ pNewtio->c_cc[VINTR] = 0; /* Ctrl-c */ pNewtio->c_cc[VQUIT] = 0; /* Ctrl-\ */ pNewtio->c_cc[VERASE] = 0; /* del */ pNewtio->c_cc[VKILL] = 0; /* @ */ pNewtio->c_cc[VEOF] = 4; /* Ctrl-d */ pNewtio->c_cc[VTIME] = 5; /* inter-character timer, timeout VTIME*0.1 */ pNewtio->c_cc[VMIN] = 0; /* blocking read until VMIN character arrives */ pNewtio->c_cc[VSWTC] = 0; /* '\0' */ pNewtio->c_cc[VSTART] = 0; /* Ctrl-q */ pNewtio->c_cc[VSTOP] = 0; /* Ctrl-s */ pNewtio->c_cc[VSUSP] = 0; /* Ctrl-z */ pNewtio->c_cc[VEOL] = 0; /* '\0' */ pNewtio->c_cc[VREPRINT] = 0; /* Ctrl-r */ pNewtio->c_cc[VDISCARD] = 0; /* Ctrl-u */ pNewtio->c_cc[VWERASE] = 0; /* Ctrl-w */ pNewtio->c_cc[VLNEXT] = 0; /* Ctrl-v */ pNewtio->c_cc[VEOL2] = 0; /* '\0' */}int main(int argc, char **argv){ int fd; int nCount,nTotal,i; struct termios oldtio,newtio; char *dev ="/dev/ttyS2"; if ( (fd = open(dev,O_RDWR | O_NOCTTY ))<0) { printf("Can't Open Serial Port!\n"); return -1; } tcgetattr(fd,&oldtio); /* save current serial port settings */ setTermios(&newtio,B115200); tcflush(fd, TCIFLUSH); tcsetattr(fd,TCSANOW,&newtio); ioctl(fd,UART_RS485_CONFIG,0); tcsetattr(fd,TCSANOW,&oldtio); close(fd); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -