matlab串口通信基础讲义.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
matlab串口通信基础讲义

 matlab串口通信基础讲义 ①支持基于串行接口(RS-232、RS-422、RS-485)、GPIB总线(IEEE2488、HPIB标准)、VISA总线的通信;   ②通信数据支持二进制和文本(ASCII)两种方式,文本方式支持SCPI(Standard Commands for Programmable Instruments)语言;   ③支持异步通信和同步通信;   ④支持基于事件驱动的通信。   从以上的Matlab设备控制工具箱的特点可以看到,Matlab完全可以满足我们实现串行通信的要求。   3.1 Matlab对串行口控制的基础知识   Matlab对串行口的编程控制主要分为四个步骤。   ①创建串口设备对象并设置其属性。   scom=serial(com1);%创建串口1的设备对象scom   scom.Terminator=CR;%设置终止符为CR(回车符),缺省为LF(换行符)   scom.InputBufferSize=1024;%输入缓冲区为256B,缺省值为512B   scom.OutputBufferSize=1024;%输出缓冲区为256B,缺省值为512B   scom.Timeout=0.5;%Y设置一次读或写操作的最大完成时间为0.5s,缺省值为10s   s.ReadAsyncMode=continuous(缺省方式);%在异步通信模式方式下,读取串口数据采用连续接收数据(continuous)的缺省方式,那么下位机返回的数据会自动地存入输入缓冲区中.   注意:在些属性只有在对象没有被打开时才能改变其值,如InputBufferSize、OutputBufferSize属性等。对于一个RS-232/RS-422/RS-485串口设备对象,其属性的缺省值为波特率9 600b/s,异步方式,通信数据格式为8位数据位,无奇偶校验位,1位停止位。如果要设置的串口设置对象的属性值与缺省值的属性值相同,用户可以不用另行设置。   另外,设置串口设置对象的属性也可以用一条指令完成,如:scom=serial(COM1,BaudRate,38400,Parity,none,DataBits,8,StopBits,1)。也可以用set命令,如set(scom,BaudRate,19200,Parity,even)。创建了对象后可以在Matlab命令窗口直接敲对象名并回车,看到其基本属性和当前状态。若需要知道其全部的属性,可以用get(scom)命令。 ②打开串口设备对象。   fopen(scom);   ③读写串口操作。初始化并打开串口调协对象之后,现在可以对串口设备对象进行读写操作,串口的读写操作支持二进制和文本(ASCII)两种方式。当Matlab通信数据采用西方(ASCII)方式时,读写串口设备的命令分别是fscanf、fpritf;当Matlab通信数据采用二进制方式时,读写串口设备的命令分别是fread、fwrite。下面以文本方式读写串口为例:   a.读串口。A=fscanf(scom,%d,[10,100];%从串口设备对象scom中读入10*100个数据填充到数组A[10,100]中,并以整型的数据格式存放。   h.写串口。Fprintf(scom,%s,RS232,async);%将字符串‘RS232?’以字符的数据格式写入到串口设备scom,写操作以异步的方式进行。   ④关闭并清除设备对象。   fclose(scom);%关闭串口设备对象   delete(scom);%删除内存中的串口设备对象   clear scom; %清除工作空间中的串口设备对象   当不再使用该串口设备对象时,顺序使用以上3条命令,可以将所创建的串口对象对象清除,以免占用系统资源。   可以看出,在Matlab中进行串行通信是十分方便的,编程较为简单。而且,在Matlab中串行通信的失误率很低,通信较为可靠,也可以采用增加握手信号以及数据校验等的方式进一步增加通信的可靠性。   3.2 Matlab实现串行通信的软件设计   在Matlab环境下,读取串口数据的方式可以分为两种—查询和中断。以查询的方式进行串行通信时,如下位单片机有大量的数据分时分批传送给PC机,就需要不停查询串行口的缓冲区,有数据就读取;虽然编程容易,但这样做不能对数据进行实时处理,系统实时性不高,而且会极大地占用系统的资源。以中断的方式对串口进行控制实现串行通信,就可以实时处理下位机传送的数据;但编程相对复杂一些,需要采用Matlab的事件和回调函数机制。 (1)基于Matlab查询方式的异步串行通信编程   Matlab查询方式的串行通信编程虽然简单,但这种方法在实际应用中实用价值不高,下面只作简单介绍。通信源程序

文档评论(0)

ranfand + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档