matlab串口编程
在嵌入式当中,串口是一种是用的比较多的通信和调试方式,串口主要还是用于通信,虽然是比较老的一种通信方式,但是现在依然保留并有着其活力,基本所有单 片机等嵌入式处理器都保留有串口模块。调试只是串口的一个被用来是用的附加功能,想对于昂贵的在线调试工具,它有着很多其他方面的优势,直观的显示程序运 行的状态和相关变量。由于其长时间的使用,相关技术和程序也比较成熟,很多工具都提供对串口通信和调试的支持,MATLAB,gdb等,串口监视和调试助 手等也随处可以得到,相对于其嵌入式通信方式,它简单实用,适合初学者和速率要求不高的场合。
之前用过蓝牙虚拟串口将串口无线化,单片机间串口通信,wifi模块和ARM7串口通信,单片机于PC机串口通信,这次的综合课程设计需要在PC上对串口 数据进行频谱的分析,于是就想使用MATLAB数学计算软件,应该相对简单点,果然,在提供相关数学运算函数的前提下,对各种设备的支持也很强大,在这里 说一下我我在这次试验中对MATLAB对串口操作的理解。前提还是阅读MATLAB自带的help文档,这是软件提供的最权威和全面的支持,但是很多人却 忽略。检索对自己有用的信息也是一种能力。
在MATLAB中有三种方式来操作串口,但是最终原理都是一样的。 1,simulink工具箱仿真
2,Instrument control toolbox
3,使用MATLAB变成语言,编写自己的程序控制
在Instrument control toolbox中,就像个串口助手,可以以图像化的方式设置各种参数,进行各种操作。在工具箱中,可以将你进行的操作实时的转换成m文件,如果你不知道怎 么编写控制串口的m文件,可以进行相关操作,然后参考生成的m文件进行编程。
simulink工具箱相对而言是比较高级的功能仿真工具,一般是在隐藏硬件细节的前提下功能仿真,如果你不熟悉原理,使用起来会一头雾水,特别是出错 时,所以建议在熟悉了底层实现的前提下使用。(可能说的太主观,至少我是这样) 没什么比编写自己的程序更加能了解自己控制的设备了,其上的两种方式都是在这个方式的基础上实现的,最终控制原理都是一样的,都是通过MATLAB提供的 一系列API函数对串口进行操作。1和2我都尝试过,但是最后还是觉得之间编程比较清晰,当然这只是一个过程,不同的情况使用不同的工具才是正确的。 以上纯属个人观点和理解,仅供参考,有什么好的想法还请不吝赐教,大家一起学习。下面是我对MATLAB环境下对串口操作的一些理解和操作。
在MATLAB中,串口被抽象成一个结构体,所有的操作均同归相关函数对结构体操作完成,通过serial函数新建一个串口对象,该函数至少需要一个参 数,即串口号,其他的可选参数为设置该串口相关参数,可以在新建对象的时候指定也可以在以后用set函数设置。相对而言,get函数可以得到串口对象的相 关参数值或者状态。串口对象参数如下:
Communications Properties
BaudRate Rate at which bits are transmitted
DataBits Number of data bits to transmit
Communications Properties
Parity Type of parity checking
StopBits Number of bits used to indicate the end of a byte
Terminator Terminator character
Write Properties
BytesToOutput Number of bytes currently in the output buffer
OutputBufferSize Size of the output buffer in bytes
Timeout Waiting time to complete a read or write operation
TransferStatus Indicate if an asynchronous read or write operation
is in progress
ValuesSent Total number of values written to the device
Read Properties
BytesAvailable Number of bytes available in the input buffer
InputBufferSize Size of the input buffer in bytes
ReadAsyncMode Specify whether an asynchronous read operation is continuous or manual
Timeout Waiting time to complete a read or write operation
TransferStatus Indicate if an asynchronous read or write operationis in progress
ValuesReceived Total number of values read from the device
Callback Properties
BreakInterruptFcn M-file callback function to execute when a break-interrupt event occurs
BytesAvailableFcn M-file callback function to execute when a specified number of bytes is available in the input buffer, or a terminator is read
BytesAvailableFcnCount Number of bytes that must be available in the input buffer to generate a bytes-available eve
nt
BytesAvailableFcnMode Specify if the bytes-available event is
generated after a specified number of bytes is available in the input buffer, or after a terminator is read
Callback Properties
ErrorFcn M-file callback function to execute when an error event occurs
OutputEmptyFcn M-file callback function to execute when the output buffer is empty
PinStatusFcn M-file callback function to execute when the CD, CTS, DSR, or RI pins change state
TimerFcn M-file callback function to execute when a predefined period of time passes
TimerPeriod Period of time between timer events
matlab中fprintf是什么意思Control Pin Properties
DataTerminalReady State of the DTR pin
FlowControl Data flow control method to use PinStatus State of the CD, CTS, DSR, and RI pins RequestToSend State of the RTS pin
Recording Properties
RecordDetail Amount of information saved to a record file
RecordMode Specify whether data and event information are saved to one record file or to multiple record files Record
Name Name of the record file
RecordStatus Indicate if data and event information are saved to a record file
General Purpose Properties
ByteOrder Order in which the device stores bytes
Name Descriptive name for the serial port object
Port Platform-specific serial port name
Status Indicate if the serial port object is connected to the device
Tag Label to associate with a serial port object
Type Object type
General Purpose Properties
UserData Data you want to associate with a serial port object
一般操作串口步骤为:(保护现场)-》新建串口对象-》设置相关参数-》读写操作-》断开连接,清理现场-》(恢复现场)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论