⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tty.c

📁 拨打电话~发信息.基于MINIGUI写的
💻 C
字号:
#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <termios.h>#include <stdio.h>#define BAUDRATE B9600          #define COM3 "/dev/ttyS0"static int fd;static struct termios oldtio,newtio;int tty_init(){        fd = open(COM3, O_RDWR );        if (fd <0)        {                perror(COM3);                exit(-1);        }                                                                                  tcgetattr(fd,&oldtio);                       bzero(&newtio, sizeof(newtio));  newtio.c_cflag = BAUDRATE | /*CRTSCTS |*/ CS8 /*| CLOCAL | CREAD */;        newtio.c_iflag = IGNPAR | ICRNL;        newtio.c_oflag = 0;        newtio.c_lflag = ICANON;  newtio.c_cc[VINTR]    = 0;     /* Ctrl-c */        newtio.c_cc[VQUIT]    = 0;     /* Ctrl-\ */  newtio.c_cc[VERASE]   = 0;     /* del */  newtio.c_cc[VKILL]    = 0;     /* @ */  newtio.c_cc[VEOF]     = 4;     /* Ctrl-d */  newtio.c_cc[VTIME]    = 0;     /* ???????????????????????? */  newtio.c_cc[VMIN]     = 1;     /* ???????? 1 ?????????????? */  newtio.c_cc[VSWTC]    = 0;     /* '\0' */  newtio.c_cc[VSTART]   = 0;     /* Ctrl-q */  newtio.c_cc[VSTOP]    = 0;     /* Ctrl-s */  newtio.c_cc[VSUSP]    = 0;     /* Ctrl-z */newtio.c_cc[VEOL]     = 0;     /* '\0' */  newtio.c_cc[VREPRINT] = 0;     /* Ctrl-r */  newtio.c_cc[VDISCARD] = 0;     /* Ctrl-u */  newtio.c_cc[VWERASE]  = 0;     /* Ctrl-w */  newtio.c_cc[VLNEXT]   = 0;     /* Ctrl-v */  newtio.c_cc[VEOL2]    = 0;         tcflush(fd, TCIFLUSH);        tcsetattr(fd,TCSANOW,&newtio);         return 0;}                                                                                int tty_read(char *buf,int nbytes){        int i,num;        num = read(fd,buf,nbytes);        for (i=0;i<num;i++)                {                printf("%c",buf[i]);                }        return num;}int tty_write(char *buf,int nbytes){        int i;        for(i=0; i<nbytes; i++)        {                write(fd,&buf[i],1);                usleep(100);        }               return tcdrain(fd);}                                                                                int tty_writecmd(char *buf,int nbytes){        int i;        for(i=0; i<nbytes; i++)        {                write(fd,&buf[i],1);                usleep(100);        }        write(fd,"\r",1);usleep(300000);                return tcdrain(fd);}int tty_end(){              tcsetattr(fd,TCSANOW,&oldtio);                                                                                                close(fd);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -