




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux串口编程分析这个话题,大家可能再熟悉不过了,网上资料很多,因为这是linux下编程比较重要的一个方面,懂这方面的人很多;这里我只是想给初学者简单的介绍下这方面的知识:串口编程其实说白了, 是拿根串口线把电脑和所要控制的机器连接起来,然后在通过编程的方式对下位机进行发送指定的数据或进行控制,或进行传输,然后在接受下位机反馈回来的信息提示是否已经正确。是不是好俗!串口是计算机上一种非常通用设备通信的协议,常用PC机上包含的是RS232规格的串口,当然,除了RS232 ,还有RS485和RS422两种规格,用于不同的设备通信;这里主要是介绍RS232串口编程。在串口编程中, 比较重要的是串口的设置,我们要设置的部分包括 波特率,数据位,停止位,奇偶校验位;要注意的是,每台机器的串口默认设置可能是不同的,如果你没设置这些,仅仅按照默认设置进行发送数据,很可能出现n 多异想不到而又查不出来的情况;所以,在真正通讯前,我们必须设置这些:下面就开始介绍这些基本设置的函数,(其实都是些固定框架,程序中稍微改改就行)o1.设置波特率注 意每台机器都有输出和输入接受信息的速度 ,所以用cfsetispeed 和cfsetospeed来分别设置;注意到struct termios 这样一个结构,它包括了串口端所有的设置,下面还要用到。它在termios.h中被定义。还有一个地方比较难以理解,为什么设置了speed_arr 和name_arr两个数组,这是因为在linuxe下,系统为波特率专门准备了一张表用B38400,B19200.代替,而我们实际上传进 去的只能是38400,19200这些值,所以我们拿我们传进去的和name_arr进行比较,如果相等则从系统对照表中取出相应值进行设置,如果不等证 明传的值在系统对照表中没有,则不进行设置。 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 0)set_speed(fd,19200); /打开后设置波特率19200elseprintf(Cant Open Serial Port!n);exit(0);if (set_Parity(fd,8,1,N)= FALSE) /设置8,1,n 注意,这里和上面要和下位机相符才可能通信printf(Set Parity Errorn);exit(1);/ 一般读的时候一般都用read ,写的时候一般都用write,read要注意阻塞后程序停止不动,所以要用select 进行控制,注意tv每次循环都要设置;write 不用考虑阻塞,但要用循环写方式保证一定写完,其实读最好也用循环读方式保证一定能读到所有东西并且能拼接在一起,然后在进行其他操作。最后while (1) 是串口通讯中常用的循环就是一直执行,直到碰到break;这些东西挺烦琐,不过其实也没什么。这里就不详细说了,下面是个最最简单的。while(1) while(nread = read(fd,buff
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 6.2.1生态系统的组成说课稿-2025-2026学年济南版生物八年级下册
- 1.2.1细胞是生物体结构和功能的基本单位 教学设计 -济南版生物七年级上册
- 2025年吉林省延吉市警(协警)招聘考试题库及答案
- 第12课 丰富的班级活动说课稿小学信息技术电子工业版安徽五年级下册-电子工业版(安徽)
- 2025年编导竞赛题库(含答案)
- 2025年护理的基本名词解释题库及答案
- 第2课 借物寓意说课稿-2025-2026学年初中美术人教版八年级上册-人教版
- DB12T 581-2015 钢制固定式危险化学品常压容器定期检验规范
- 4.3.1人的呼吸教学设计-人教版生物七年级下册
- 一年级信息技术下册 沿途风景(2)-调整幻灯片的顺序 1说课稿 河大版
- 成人反流误吸高危人群全身麻醉管理专家共识(2025版)解读 3
- 2025-2026学年辽海版(2024)小学美术二年级上册《巧用材料》教学设计
- 2025海康威视视频安全门禁系统使用手册
- 2025中数联物流科技(上海)有限公司招聘考试参考试题及答案解析
- 量子计算在人工智能领域的发展趋势与2025年应用案例分析报告
- 安检流程课件
- 2025综合能力测试真题题库及答案
- 2025-2026学年沪教牛津版(深圳用)小学英语五年级上册教学计划及进度表
- 综合与实践最短路径问题-牧民饮马问题(教学课件)
- 带状疱疹后神经痛护理查房
- 保密文印管理办法
评论
0/150
提交评论