Step1
#include <termios.h>
void init_uart(const char *uartport) {
if ((serial_fd = open(uartport, O_RDWR | O_NOCTTY | O_SYNC)) == -1) {
LOG_INFO("%s, port could not be opened, error %d", uartport, errno);
exit(5);
}
tcflush(serial_fd, TCIOFLUSH);
tcgetattr(serial_fd, &dw_termios);
#ifndef __CYGWIN__
cfmakeraw(&dw_termios);
#else
dw_termios.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP
| INLCR | IGNCR | ICRNL | IXON);
dw_termios.c_oflag &= ~OPOST;
dw_termios.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN);
dw_termios.c_cflag &= ~(CSIZE | PARENB);
dw_termios.c_cflag |= CS8;
#endif
dw_termios.c_cflag |= CRTSCTS;
tcsetattr(serial_fd, TCSANOW, &dw_termios);
tcflush(serial_fd, TCIOFLUSH);
tcsetattr(serial_fd, TCSANOW, &dw_termios);
tcflush(serial_fd, TCIOFLUSH);
tcflush(serial_fd, TCIOFLUSH);
cfsetospeed(&dw_termios, B115200);
cfsetispeed(&dw_termios, B115200);
tcsetattr(serial_fd, TCSANOW, &dw_termios);
}
Change Baudrate
void proc_baudrate(int dbfw_baudrate) {
cfsetospeed(&dw_termios, termios_baudrate);
cfsetispeed(&dw_termios, termios_baudrate);
tcsetattr(serial_fd, TCSANOW, &dw_termios);
}