




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux下的串口编程一:串口发送端程序/*文件:w_uart.c*编写者:huangminqiang*编写日期:2012年10月15号*简要描述:串口发送程序,在PC机上发送。*修改者:*修改日期:2012年11月12号*注:*/#include #include #include #include #include #include #define COM /dev/ttyS0typedef enumNON, /无校验ODD, /偶校验EVEN,/奇校验cal_t;/*设置串口*/static int set_com(int fd, int speed, int bits, cal_t cal, int stop )struct termios curtio;memset(&curtio, 0, sizeof(curtio);/取得串口已有的属性if (0 != tcgetattr(fd, &curtio)perror(Failed to tcgetattr);return -1;/设置输入输出波特率cfsetispeed(&curtio, speed);cfsetospeed(&curtio, speed);/设置为原始模式curtio.c_lflag &= (ECHO | ICANON | IEXTEN | ISIG | ECHOE | ECHOK | ECHONL);curtio.c_iflag &= (BRKINT | IUCLC | ICRNL | INLCR | IGNCR);/激活相应选项curtio.c_cflag |= CLOCAL | CREAD;/设置数据位curtio.c_cflag &= CSIZE;curtio.c_cflag |= bits;/设置校验位if (ODD = cal)curtio.c_iflag |= (INPCK | ISTRIP);curtio.c_cflag |= PARENB;curtio.c_cflag |= PARODD;else if(EVEN = cal)curtio.c_iflag |= (INPCK | ISTRIP);curtio.c_cflag |= PARENB;curtio.c_cflag &= PARODD;elsecurtio.c_cflag &= PARENB;/设置停止位if (2 = stop)curtio.c_cflag |= CSTOPB;elsecurtio.c_cflag &= CSTOPB;/设置最少字符等待时间curtio.c_ccVTIME = 0;curtio.c_ccVMIN = 0;/清空缓冲tcflush(fd, TCIOFLUSH);/设置新串口属性if (0 != tcsetattr(fd, TCSANOW, &curtio)perror(Failed to tcgetattr);return -1;printf(set done!n);return 0;/*写入串口信息*/int WriteUartInfo(void)int fd;int cnt = 0;int w_cnt = 0;unsigned char w_buf128;/打开串口fd = open(COM, O_RDWR);if(0 fd)perror(uart open err:);return -1;#if 0/设置串口参数if (0 != set_com(fd, B115200, CS8, NON, 1)printf(set_com failed!n);goto _out;#endif/发送信息while(1)printf(plese input a buffer : );memset(w_buf, 0, sizeof(w_buf);fgets(w_buf, sizeof(w_buf), stdin);w_cnt = write(fd, w_buf, sizeof(w_buf);if(0 w_cnt)perror(write error : );goto _out;printf(sent out ! n);/结束判断if( !strncmp(w_buf, quit, 4) )break;/关闭串口close(fd);return 0;_out:close(fd);return -1;/* 主函数 */int main(void)if( WriteUartInfo() )printf(write uart data failed!n);return -1;return 0;二:串口接收端程序/*文件:r_uart.c*编写者:huangminqiang*编写日期:2012年10月15号*简要描述:串口接收程序,在板子上运行。*修改者:*修改日期:2012年11月12号*注:*/#include #include #include #include #include #include #define COM /dev/ttyAMA0/* 读取串口信息 */int ReadUartInfo(void)int fd;int cnt = 0;int r_cnt = 0;struct termios attr;fd_set r_fds;struct timeval tv;unsigned char r_buf128 = 0;/打开串口fd = open(COM, O_RDWR);if(0 fd)perror(open uart error : );return -1;/由于串口设置已固化,故不需要设置。#if 0/设置串口参数if ( set_com(fd, B115200, CS8, NON, 1) )printf(set_com failed!n);goto _out;#endifwhile(1)/清除监测集合FD_ZERO(&r_fds);/将串口句柄加入到监测集合中FD_SET(fd, &r_fds);/设置超时为3秒tv.tv_sec = 3;tv.tv_usec = 0;/监测串口是否有数据接收到,超时为3秒cnt = select(fd + 1, &r_fds, NULL, NULL, &tv);switch(cnt)case 0:/超时/printf(time out !n);break;case -1:/错误perror(select : );goto _out;default:if( FD_ISSET(fd, &r_fds) ) /有数据可读/接收数据r_cnt = read(fd, r_buf, sizeof (r_buf);if(0 r_cnt)perror(read error : );goto _out;/printf(%s, r_buf);/system(r_buf);memset(r_buf, 0, sizeof(r_buf);/ 关闭串口close(fd);return 0;_out:close(fd);return -1;/* 主函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年龙岩市供电服务有限公司招聘59人模拟试卷及答案详解(典优)
- 2025辽宁沈阳地铁集团有限公司所属公司拟聘用人员模拟试卷完整答案详解
- 2025年度周口西华县中医院校园招聘17名模拟试卷及参考答案详解
- 2025年河北邯郸市肥乡区公开选聘农村党务(村务)工作者100名模拟试卷有完整答案详解
- 2025江苏苏州市港航投资发展集团有限公司专业化青年人才定岗特选人员考前自测高频考点模拟试题及答案详解(名校卷)
- 2025年4月四川内江市第六人民医院招聘见习人员3人模拟试卷附答案详解(黄金题型)
- 2025年绥化市中医医院招聘考前自测高频考点模拟试题附答案详解
- 2025甘肃交建中油能源有限责任公司加油(气)员招聘13人模拟试卷有完整答案详解
- 2025江苏南京大学医院事业编制和校聘岗位招聘考前自测高频考点模拟试题完整参考答案详解
- 2024-2025年度广东重工建设监理有限公司校园招聘笔试题库历年考点版附带答案详解
- 16949体系培训计划
- T/CAZG 003-2019亚洲象饲养管理技术规范
- 《智慧仓储管理》课程标准
- 火锅店股东协议合同协议
- 电梯曳引钢丝绳维护保养制度
- 江苏扬州历年中考语文古诗欣赏试题汇编(2003-2024)
- 沪教版(五四学制)(2024)六年级下册单词表+默写单
- 茶叶加工工(中级)模拟试题与答案
- 高考语文复习【高效课堂精研】打造议论文分论点+课件
- 《SAP培训资料》课件
- 《CT增强扫描碘对比剂外渗预防与护理规范》
评论
0/150
提交评论