#include <stdio.h> #include <sys/types.h> #include <termios.h> #include <fcntl.h> #include <stdlib.h> #include <string.h> #define SERIAL_DEVICE "/dev/ttyUSB1" int main() { struct termios serial_port_settings; int fd; int retval; char *buf = NULL; int bufsize = 0; fd = open(SERIAL_DEVICE, O_RDWR); if (fd < 0) { perror("Failed to open SERIAL_DEVICE"); exit(1); } retval = tcgetattr(fd, &serial_port_settings); if (retval < 0) { perror("Failed to get termios structure"); exit(2); } //setting baud rate to B38400 retval = cfsetospeed(&serial_port_settings, B38400); if (retval < 0) { perror("Failed to set 38400 output baud rate"); exit(3); } retval = cfsetispeed(&serial_port_settings, B38400); if (retval < 0) { perror("Failed to set 38400 input baud rate"); exit(4); } serial_port_settings.c_lflag |= ICANON; serial_port_settings.c_oflag |= OCRNL; serial_port_settings.c_oflag |= OLCUC; retval = tcsetattr(fd, TCSANOW, &serial_port_settings); if (retval < 0) { perror("Failed to set serial attributes"); exit(5); } printf("/dev/ttyUSB1:Successfully set the baud rate\n"); loop: printf("/dev/ttyUSB1:Enter size of the buffer:"); scanf("%d", &bufsize); if (bufsize <= 0) { printf("Buffer size should be greater > 0\n"); goto loop; } buf = malloc(bufsize); if (!buf) { perror("Failed to allocate buffer\n"); exit(6); } memset(buf, 'A', bufsize); buf[bufsize-2] = '\n'; buf[bufsize-1] = '\0'; retval = write(fd, buf, bufsize); if (retval < 0) { perror("write on SERIAL_DEVICE failed"); exit(7); } tcflush(fd, TCOFLUSH); printf("/dev/ttyUSB1: Flushing output buffer\n"); free(buf); close(fd); return 0; }