matlab串口编程.docx

上传人:asd****56 文档编号:70343996 上传时间:2023-01-19 格式:DOCX 页数:5 大小:175.37KB
返回 下载 相关 举报
matlab串口编程.docx_第1页
第1页 / 共5页
matlab串口编程.docx_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《matlab串口编程.docx》由会员分享,可在线阅读,更多相关《matlab串口编程.docx(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、在嵌入式当中,串口是一种是用的比较多的通信和调试方式,串口主要还是用于通信,虽然是比较老的一种通信方式,但是现在依然保留并有着其活力,基本所有单 片机等嵌入式处理器都保留有串口模块。调试只是串口的一个被用来是用的附加功能,想对于昂贵的在线调试工具,它有着很多其他方面的优势,直观的显示程序运 行的状态和相关变量。由于其长时间的使用,相关技术和程序也比较成熟,很多工具都提供对串口通信和调试的支持,MATLAB,gdb等,串口监视和调试助 手等也随处可以得到,相对于其嵌入式通信方式,它简单实用,适合初学者和速率要求不高的场合。之前用过蓝牙虚拟串口将串口无线化,单片机间串口通信,wifi模块和ARM7

2、串口通信,单片机于PC机串口通信,这次的综合课程设计需要在PC上对串口 数据进行频谱的分析,于是就想使用MATLAB数学计算软件,应该相对简单点,果然,在提供相关数学运算函数的前提下,对各种设备的支持也很强大,在这里 说一下我我在这次试验中对MATLAB对串口操作的理解。前提还是阅读MATLAB自带的help文档,这是软件提供的最权威和全面的支持,但是很多人却 忽略。检索对自己有用的信息也是一种能力。在MATLAB中有三种方式来操作串口,但是最终原理都是一样的。1,simulink工具箱仿真2,Instrument control toolbox3,使用MATLAB变成语言,编写自己的程序控制

3、在Instrument control toolbox中,就像个串口助手,可以以图像化的方式设置各种参数,进行各种操作。在工具箱中,可以将你进行的操作实时的转换成m文件,如果你不知道怎 么编写控制串口的m文件,可以进行相关操作,然后参考生成的m文件进行编程。simulink工具箱相对而言是比较高级的功能仿真工具,一般是在隐藏硬件细节的前提下功能仿真,如果你不熟悉原理,使用起来会一头雾水,特别是出错 时,所以建议在熟悉了底层实现的前提下使用。(可能说的太主观,至少我是这样)没什么比编写自己的程序更加能了解自己控制的设备了,其上的两种方式都是在这个方式的基础上实现的,最终控制原理都是一样的,都是通

4、过MATLAB提供的 一系列API函数对串口进行操作。1和2我都尝试过,但是最后还是觉得之间编程比较清晰,当然这只是一个过程,不同的情况使用不同的工具才是正确的。以上纯属个人观点和理解,仅供参考,有什么好的想法还请不吝赐教,大家一起学习。下面是我对MATLAB环境下对串口操作的一些理解和操作。在MATLAB中,串口被抽象成一个结构体,所有的操作均同归相关函数对结构体操作完成,通过serial函数新建一个串口对象,该函数至少需要一个参 数,即串口号,其他的可选参数为设置该串口相关参数,可以在新建对象的时候指定也可以在以后用set函数设置。相对而言,get函数可以得到串口对象的相 关参数值或者状态

5、。串口对象参数如下:Communications PropertiesBaudRateRate at which bits are transmittedDataBitsNumber of data bits to transmitParityType of parity checkingStopBitsNumber of bits used to indicate the end of a byteTerminatorTerminator characterWrite PropertiesBytesToOutputNumber of bytes currently in the output

6、 bufferOutputBufferSizeSize of the output buffer in bytesTimeoutWaiting time to complete a read or write operationTransferStatusIndicate if an asynchronous read or write operation is in progressValuesSentTotal number of values written to the deviceRead PropertiesBytesAvailableNumber of bytes availab

7、le in the input bufferInputBufferSizeSize of the input buffer in bytesReadAsyncModeSpecify whether an asynchronous read operation is continuous or manualTimeoutWaiting time to complete a read or write operationTransferStatusIndicate if an asynchronous read or write operation is in progressValuesRece

8、ivedTotal number of values read from the deviceCallback PropertiesBreakInterruptFcnM-file callback function to execute when a break-interrupt event occursBytesAvailableFcnM-file callback function to execute when a specified number of bytes is available in the input buffer, or a terminator is readByt

9、esAvailableFcnCountNumber of bytes that must be available in the input buffer to generate a bytes-available eventBytesAvailableFcnModeSpecify if the bytes-available event is generated after a specified number of bytes is available in the input buffer, or after a terminator is readErrorFcnM-file call

10、back function to execute when an error event occursOutputEmptyFcnM-file callback function to execute when the output buffer is emptyPinStatusFcnM-file callback function to execute when the CD, CTS, DSR, or RI pins change stateTimerFcnM-file callback function to execute when a predefined period of ti

11、me passesTimerPeriodPeriod of time between timer eventsControl Pin PropertiesDataTerminalReadyState of the DTR pinFlowControlData flow control method to usePinStatusState of the CD, CTS, DSR, and RI pinsRequestToSendState of the RTS pinRecording PropertiesRecordDetailAmount of information saved to a

12、 record fileRecordModeSpecify whether data and event information are saved to one record file or to multiple record filesRecordNameName of the record fileRecordStatusIndicate if data and event information are saved to a record fileGeneral Purpose PropertiesByteOrderOrder in which the device stores b

13、ytesNameDescriptive name for the serial port objectPortPlatform-specific serial port nameStatusIndicate if the serial port object is connected to the deviceTagLabel to associate with a serial port objectTypeObject typeUserDataData you want to associate with a serial port object一般操作串口步骤为:(保护现场)-新建串口对

14、象-设置相关参数-读写操作-断开连接,清理现场-(恢复现场)新建串口对象 :serial函数,以提供各种参数新建串口对象设置参数 :可以在serial函数中指定参数,也可以用set函数改变和设置特定参数。读写操作 :和C语言中文件读写操作很想,以object对象文件描述符进行操作。主要操作函数为:fprintf,写函数,以字符方式写fwrite,写函数,以二进制方式写fscanf,读函数,以字符方式读,以Terminator为 结束符,带有超时返回功能fread,读函数,以而进制方式读,读指定字符数fgets,读函数,以字符方式读,包括Terminatorfgetl,读函数,以字符方式读,忽略

15、Terminator辅助操作。在串口中有四个变量:InputBufferSize,OutputBufferSize,ValuesSent,ValuesReceived, 字面意思很好理解,在MATLAB中,输入输出都是有相应缓冲区的,防止数据丢失,也给数据流提供更灵活的控制。可是设置适当的缓冲区长度和检测接受或者 发送的字符个数来进行相关操作,在我的试验中,需要做FFT,做FFT需要一定的点数,我是检测ValuesReceived的值,到指定的个数 时一次性读到程序中处理。 以上函数具体细节参考help文档,注意字符个数和Terminator 字符! 断开连接:fclose(s) 关闭连接delete(s) 删除对象clear s 清除调试,当然一切事情都不会那么一帆风顺,难免出现状况,这是可以使用一些简单的操作进行调试检查,MATLAB有自己的M文件调试方式,查看串口对象变量 disp等函数查看变量是否对,或者最简单的在command窗口键入对象名即可以输出对象所有参数,串口对象是否新建成功,是否重复冲突 Instrument control toolbox也可以使用。在实验中,使用虚拟串口软件虚拟两个串口内部相连,进行纯软件调试,下面是我制作简单界面的程序,第一次用MATLAB GUI设计。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁