已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厂界噪声排放达标管控方案
- 职业健康促进与保护实施方案
- 大豆机械收割作业操作管理规范
- 节日客户关怀问候服务话术
- 奶牛围产期饲养管理技术操作指引
- 肉羊冬季科学保膘饲养方案
- 马铃薯垄作栽培种植技术
- 危险废物台账建立记录管理办法
- 产后修复月子餐营养摄入标准
- 职工安全教育考试试题规范
- 2026年安全生产月活动宣贯培训课件
- 衡阳县岣嵝峰林场招聘社区网格员考试试题附答案详解
- DB-T29-1-2026 天津市居住建筑节能设计标准
- 视频监控系统技术规范书
- 从创意到创业知到智慧树章节测试课后答案2024年秋湖南师范大学
- J-T 3351-2024 农村公路简易铺装路面设计施工技术细则 (正式版)
- 美容师:中级美容师考试试题
- 教育与美好人生智慧树知到期末考试答案2024年
- VTE预防健康教育
- PSW-零件提交保证书正规范本(通用版)
- 《社会保障学》医疗保险-课件
评论
0/150
提交评论