matlab串口编程.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:5 大小:239KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

matlab串口编程.pdf

matlab串口编程.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

在嵌入式当中,串口是一种是用的比较多的通信和调试方式,串口主要还是用于通信,虽然是比较老的一种通信方式,但是现在依然保留并有着其活力,基本所有单片机等嵌入式处理器都保留有串口模块。调试只是串口的一个被用来是用的附加功能,想对于昂贵的在线调试工具,它有着很多其他方面的优势,直观的显示程序运行的状态和相关变量。由于其长时间的使用,相关技术和程序也比较成熟,很多工具都提供对串口通信和调试的支持,MATLAB,gdb等,串口监视和调试助手等也随处可以得到,相对于其嵌入式通信方式,它简单实用,适合初学者和速率要求不高的场合。之前用过蓝牙虚拟串口将串口无线化,单片机间串口通信,wifi模块和ARM7串口通信,单片机于PC机串口通信,这次的综合课程设计需要在PC上对串口数据进行频谱的分析,于是就想使用MATLAB数学计算软件,应该相对简单点,果然,在提供相关数学运算函数的前提下,对各种设备的支持也很强大,在这里说一下我我在这次试验中对MATLAB对串口操作的理解。前提还是阅读MATLAB自带的help文档,这是软件提供的最权威和全面的支持,但是很多人却忽略。检索对自己有用的信息也是一种能力。在MATLAB中有三种方式来操作串口,但是最终原理都是一样的。1,simulink工具箱仿真2,Instrumentcontroltoolbox3,使用MATLAB变成语言,编写自己的程序控制在Instrumentcontroltoolbox中,就像个串口助手,可以以图像化的方式设置各种参数,进行各种操作。在工具箱中,可以将你进行的操作实时的转换成m文件,如果你不知道怎么编写控制串口的m文件,可以进行相关操作,然后参考生成的m文件进行编程。simulink工具箱相对而言是比较高级的功能仿真工具,一般是在隐藏硬件细节的前提下功能仿真,如果你不熟悉原理,使用起来会一头雾水,特别是出错时,所以建议在熟悉了底层实现的前提下使用。(可能说的太主观,至少我是这样)没什么比编写自己的程序更加能了解自己控制的设备了,其上的两种方式都是在这个方式的基础上实现的,最终控制原理都是一样的,都是通过MATLAB提供的一系列API函数对串口进行操作。1和2我都尝试过,但是最后还是觉得之间编程比较清晰,当然这只是一个过程,不同的情况使用不同的工具才是正确的。以上纯属个人观点和理解,仅供参考,有什么好的想法还请不吝赐教,大家一起学习。下面是我对MATLAB环境下对串口操作的一些理解和操作。在MATLAB中,串口被抽象成一个结构体,所有的操作均同归相关函数对结构体操作完成,通过serial函数新建一个串口对象,该函数至少需要一个参数,即串口号,其他的可选参数为设置该串口相关参数,可以在新建对象的时候指定也可以在以后用set函数设置。相对而言,get函数可以得到串口对象的相关参数值或者状态。串口对象参数如下:CommunicationsPropertiesBaudRateRateatwhichbitsaretransmittedDataBitsNumberofdatabitstotransmitCommunicationsPropertiesParityTypeofparitycheckingStopBitsNumberofbitsusedtoindicatetheendofabyteTerminatorTerminatorcharacterWritePropertiesBytesToOutputNumberofbytescurrentlyintheoutputbufferOutputBufferSizeSizeoftheoutputbufferinbytesTimeoutWaitingtimetocompleteareadorwriteoperationTransferStatusIndicateifanasynchronousreadorwriteoperationisinprogressValuesSentTotalnumberofvalueswrittentothedeviceReadPropertiesBytesAvailableNumberofbytesavailableintheinputbufferInputBufferSizeSizeoftheinputbufferinbytesReadAsyncModeSpecifywhetheranasynchronousreadoperationiscontinuousormanualTimeoutWaitingtimetocompleteareadorwriteoperationTransferStatu