日期:2011-01-23 03:26:00 来源:本站整理
<b>Linux串口测试工具简单程序展示</b>[Linux安全]
本文“<b>Linux串口测试工具简单程序展示</b>[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
由于已经完成了第一个HELLO程序,标志着整个编译环境已经没有问题了,下来预备做一下串口测试程序.由于串口驱动开辟板已经作好了,所以就作一个Linux串口测试工具简单的数据收发看看.
Linux串口测试工具网上常见的版本都看起来对比烦琐,下面是一个简单一点的,这个程序功效是收到10个字节后会发前7个字节,假如所发的数据的第一个字节是9则退出.
- /* rs232_send.c*/
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #defineBAUDRATEB115200//38400
- #defineMODEMDEVICE"/dev/ttyS1"
- int main()
- {
- int fd,c=0,res;
- struct termios oldtio,newtio;
- intch;
- static char s1[20],buf[19];
- printf("start ...\n");
- /*翻开PC的COM1口*/
- fd = open(MODEMDEVICE,O_RDWR|O_NOCTTY);
- if (fd
- {
- perror(MODEMDEVICE);
- exit(1);
- }
- printf("open...\n");
- /*将旧的通讯参数存入oldtio构造*/
- tcgetattr(fd,&oldtio);
- /*初始化新的newtio */
- bzero(&newtio,sizeof(newtio));
- /*8N1*/
- newtio.c_cflag = BAUDRATE|CS8|CLOCAL|CREAD;
- newtio.c_iflag = IGNPAR;
- newtio.c_oflag = 0;
- /*正常情势*/
- /*newtio.c_lflag = ICANON;*/
- /*非正常情势*/
- newtio.c_lflag = 0;
- newtio.c_cc[VTIME] = 0;
- newtio.c_cc[VMIN] = 10;
- tcflush(fd,TCIFLUSH);
- /*新的temios作为通讯端口参数*/
- tcsetattr(fd,TCSANOW,&newtio);
- printf("writing...\n");
- while(1)
- {
- res = read(fd,buf,10);
- res = write(fd,buf,7);
- if(buf[0]==9) break;
- }
- printf("close...\n");
- close(fd);
- /*复原旧参数*/
- tcsetattr(fd,TCSANOW,&oldtio);
- return 0;
- }
还有一点要注意,就是Linux串口测试工具串口有两种工作情势,即正规情势和非正规情势,假如习惯在串口调试器顶用16进制发送,此时串口应当为非正规情势才行.
下面是这两种情势的阐明
Linux串口测试工具正规情势(CANONICAL大概COOKED)
此情势下,终端设备会处理特别字符,并且数据传输是一次一行的方法,既按回车后才开始发送和接纳数据.比方LINUX的SHELL.
Linux串口测试工具非正规情势(NON-CANONICAL大概RAW)
此情势下,终端设备不会处理特别字符,并且数据传输是一次一个字符的方法,既不用按回车换行.比方LINUX的VIM.
以上是“<b>Linux串口测试工具简单程序展示</b>[Linux安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论