#include <string.h> // Check to be sure we need this<br />#include <stdlib.h><br />// below are the includes for raw I/O<br />#include <fcntl.h><br />#include <unistd.h><br />//#include "configsym.h"<br />#define PORT "/dev/ttyS1"<br />#include <stdio.h><br />//#include "curses.h"<br />#include <stdlib.h><br />#include <fcntl.h><br />#include "termio.h"<br />#include <string.h><br />#include <time.h><br />int portfd;<br />struct termio newio,oldio;<br />int SetPort()<br />{<br /> if ( portfd < 0 ) return -1;<br /> if ( ioctl(portfd, TCGETA, &oldio) < 0 ) return -1;<br /> if ( ioctl(portfd, TCGETA, &newio) < 0 ) return -1;<br /> <br /> newio.c_cflag &= ~CBAUD;<br /> newio.c_cflag &= ~CSIZE;<br /> newio.c_cflag |= B115200;<br /> newio.c_cflag |= CS8;<br /> newio.c_cflag |= (CLOCAL | CREAD);<br /> newio.c_cflag &= ~(PARENB | CSTOPB);<br /><br /> newio.c_iflag &= ~( INLCR |ISTRIP |IXON |ICRNL |IGNCR | IGNPAR);<br /> newio.c_oflag &= ~OPOST;<br /> newio.c_lflag &= ~( ISIG |ECHO |ICANON | NOFLSH);<br /> <br /> newio.c_cc[VMIN] = 1;<br /> newio.c_cc[VTIME] = 0;<br /> newio.c_cc[VQUIT] = 0x7f;<br /><br /> if ( ioctl(portfd, TCSETAW, &newio) ) return -1;<br /> return 0;<br />}<br /><br />main()<br />{<br /> int ch;<br /> static int n;<br /><br />#if defined(O_NDELAY) && defined(F_SETFL)<br /> portfd = open(PORT, O_RDWR|O_NDELAY);<br /> if (portfd >= 0){<br /> /* Cancel the O_NDELAY flag. */<br /> n = fcntl(portfd, F_GETFL, 0);<br /> (void) fcntl(portfd, F_SETFL, n & ~O_NDELAY);<br /> }<br />#else<br /> portfd = open(PORT, O_RDWR);<br />#endif<br /> if (portfd >= 0) {<br /> printf("return value is %d",SetPort());<br /> }<br /> n='0';<br /> for(;;){<br /> if (n>('0'+30)) n='\n';<br /> printf("write %d characte:%c\n",write(portfd,&n,1),n);<br /> n++;<br /> }<br />}<br /><br /> |
|