1 / 24
文档名称:

串口通信协议实现2.doc

格式:doc   页数:24页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

串口通信协议实现2.doc

上传人:xxj16588 2016/6/23 文件大小:0 KB

下载得到文件列表

串口通信协议实现2.doc

相关文档

文档介绍

文档介绍:串口通信协议实现 2 串口通信协议实现 如果青春的时光在闲散中度过, 那么回忆岁月将是一场凄凉的悲剧。杂草多的地方庄稼少, 空话多的地方智慧少。即使路上没有花朵, 我仍可以欣赏荒芜。这几天, 由于长春门检系统项目的需要, 涉及到了读卡器信息的串口读取, 所以在 Linux 下串口信息的读取有了一点心得体会。 1. 打开串口与其他的关于设备编程的方法一样,在 Linux 下,操作、控制串口也是通过操作起设备文件进行的。在 Linux 下, 串口的设备文件是/dev/ttyS0 或/dev/ttyS1 等。因此要读写串口,我们首先要打开串口: char *dev = "/dev/ttyS0"; // 串口 1 int fd= open( dev, O_RDWR ); //| O_NOCTTY | O_NDELAY if (-1 == fd) { perror("Can't Open Serial Port"); return -1; } else return fd; 2. 设置串口速度打开串口成功后,我们就可以对其进行读写了。首先要设置串口的波特率: int speed_arr[] ={ B38400, B19200, B9600, B4800, B2400, B1200, B300, B38400, B19200, B9600, B4800, B2400, B1200, B300, }; int name_arr[] = {38400, 19200, 9600, 4800, 2400, 1200, 300, 38400, 19200, 9600, 4800, 2400, 1200, 300, }; void set_speed(int fd, int speed){ int i; int status; struct termios Opt; tcgetattr(fd, &Opt); for ( i= 0;i< sizeof(speed_arr) / sizeof(int); i++) { if (speed == name_arr[i]) { tcflush(fd, TCIOFLUSH); cfsetispeed(&Opt, speed_arr[i]); cfsetospeed(&Opt, speed_arr[i]); status = tcsetattr(fd, TCSANOW, &Opt); if (status != 0){ perror("tcsetattr fd"); return; } tcflush(fd,TCIOFLUSH); }}} 3. 设置串口信息这主要包括:数据位、停止位、奇偶校验位这些主要的信息。/** ****@brief 设置串口数据位,停止位和效验位****@param fd 类型 int 打开的串口文件句柄****@param databits 类型 int 数据位取值为7 或者 8 ****@param stopbits 类型 int 停止位取值为 1 或者 2 ****@param parity 类型 int 效验类型取值为 N,E,O,,S */ int set_Parity(int fd,int databits,int stopbits,int parity) { struct termios options; if( tcgetattr( fd,&options) != 0){ perror("SetupSerial 1"); return(FALSE); } &= ~CSIZE; &= ~(ICANON | ECHO | ECHOE | ISIG); /*Input*/ &= ~OPOST; /*Output*/ switch (databits) /* 设置数据位数*/ { case 7: |= CS7; break; case 8: |= CS8; break; default: fprintf(stderr,"Unsupported data size\n"); return (FALSE); } switch (parity) { case 'n': case 'N': &= ~PARENB; /* Clear parity enable */ &= ~INPCK; /* Enable parity checking */ break; case 'o': case 'O': |= (PARODD | PARENB); /* 设置为奇效

最近更新

闭口采购合同精简:范文分析与应用指南 2页

除尘器配件全球采购及仓储物流合同 3页

2025年护士节创意礼物 6页

互联网+背景下的产业融合趋势分析-洞察及研究.. 22页

2025年护士工作心得及收获 11页

餐厅委托经营与品牌形象维护合同 3页

餐厅连锁加盟委托经营合同 3页

武汉长印房地产开发公司项目策划工作手册样本.. 22页

高新技术企业原材料采购合同范本 2页

高档酒店餐饮设施租赁经营合同 3页

2025年扣好人生第一粒扣子主题作文有哪些新时.. 5页

高端家政玻璃清洁服务协议范本 2页

2025年手相福禄寿三丘隆起 3页

2025年房屋赔偿协议书 39页

鲍鱼海鲜产品团购协议 2页

小国家宪法日主题教育活动方案 3页

老黄斑变性预防和治疗 48页

2025年房地产销售个人工作计划怎么写 57页

2025年房地产员工工作计划精选篇 15页

杭州五金机电城招商方案样本 30页

雨季施工质量技术保证措施样本 9页

汕头南澳紫菜炒饭海藻多糖与碘稳定性研究 61页

2024年高速公路收费人员专属劳动协议版 9页

离婚宅基地房屋分割协议书2024年 5页

地铁安保区内施工地铁保护施工方案 23页

退学炒股(我和小明完整版) 68页

弥陀法华经(共74页) 78页

药品专业知识与技能培训试题及答案 3页

张娟-北京理工大学自动化学院 1页

安运风机大型风机在线监测系统用户手册2008通.. 24页