赞
踩
今天我们来介绍如何编写在matlab中编写脚本来读取串口数据。
matlab中内置了串口功能函数,我们在使用时只需要调用函数进行相应配置即可,我们来看串口函数。
serial(S_P,'Parity','none','BaudRate',BaudRate1,'DataBits',8,'StopBits',1)
这个函数用来对串口进行设置,其中S_P为端口号,如COM1、COM2等,‘Parity’后面为校验位,一般为none,'BaudRate’后面位波特率,'DateBits’后面为数据位,一般为8,'StopBits’后面为停止位,一般为1。
后面还可以加入读取的字节数,我们这里在下面进行设置。
接下来我们将这个设置好的串口命名为S,可以直接进行设置:
S=serial(S_P,'Parity','none','BaudRate',BaudRate1,'DataBits',8,'StopBits',1)
下面我们来打开这个串口:
fopen(S)
我们先运行这两行脚本,成功之后在命令行窗口中可以看到相应的信息:
读取串口数据的命令为fread和fscanf两个,其中fcanf为读取字符串,我们这里来读取字符串。
a=fscanf(s,'String',255)
这里有三个参数,第一个为串口名称,第二个为匹配的数据类型,第三个为接收的字节数。
我们来运行一下。
可以看到a的值与串口助手中接收的数据一致,为从1到10,再从10到1.
最后,一定要注意在使用完串口后关闭串口,否则将无法使用。如果我们不关闭想要再次打开,就会出现这种情况:
这是因为串口已经被占用,就算用串口助手也无法打开这个串口。
所以要使用关闭串口的函数来进行关闭:
fclose(s)
里面的参数为要关闭的串口名称。
如果打开的串口比较多,或者我们不知道要关闭哪些串口,我们可以使用’instrfind’命令来查看各个端口的状态。
我们可以看到’COM4’被打开。
也可以直接将所有打开的串口全部关闭。
delete(instrfindall)
今天的分享就这些了,希望大家及时学习。
下期预告:
利用GUI制作串口调试工具的上位机。
##以上就是本节的全部内容,后续内容会逐渐上传,相关源码也会统一上传,也可以到公众号私聊我要。
##不足之处请及时指出,相互学习
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。