关于MATLAB读取端口数据的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于MATLAB读取端口数据的问题相关的知识,希望对你有一定的参考价值。
我想用MATLAB编写程序读取传感器出来的数据,端口协议是9600 8 n 1 端口是com3,8个数据读取出来要处理一次,例如求平均然后画出随时间变化曲线,但是我用度娘搜索出来的代码不可用
参考技术A s=serial('com1');//设置串口set(s,'BaudRate',9600,'StopBits',1,'Parity','none','DataBits',8,'InputBufferSize',255);
//串口的一些设置,注意,'none'有引号,有些值如InputBufferSize只能在串口关闭时才能设置,
//所以不建议先打开串口
fopen(s)//打开串口
fwrite(s,100);//打100(十进制)写入串口也可以是一维数组,可以用示波器测com的第3个引脚
a=fread(s);
//读出串口数据,由于matlab是顺序执行的,所以这里读不到100,
//程序会卡在这里直到读到数据为止,好像是存完buffer吧,这里忘了。
//自己从com的第2个引脚给数据试试看就清楚了
fclose(s);//关闭串口
//其他命令
instrfind//列出当前的串口,和状态
delete(instrfind)//删除串口这和关闭串口有区别,我想你应该清楚什么是删除吧
fclose(instrfind)//关闭串口
个人写过matlab的串口GUI,很不好用建议用VC 的mfc写,他可以实时监控本回答被提问者和网友采纳
关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法
在网上找了半天解决办法,也没有找到,在此共享我自己的一个问题,不具有普遍性,仅作参考!
问题描述:MATLAB调用xlsread函数出现问题,第一次运行的时候,出现服务器异常,再次运行能够正常读取数据;
在调用xlswrite函数时,一直出现服务器异常状况,不能将数据写入excel表格中。
问题关键:不是MATLAB的原因,问题出在excel软件上!
问题解决:xlswrite函数在调用时会占用excel的com端口,所以要保证在调用时这个端口是开放的,也就是没有被其他程序占用。打开excel(我的是13版),文件--选项,弹出excel选项卡,在加载项中可以看到,活动应用程序加载项,以及非活动应用程序加载项;截图如下:
我打开的时候,非活动区的第一个福昕软件的加载项是在活动区的, 也就是活动区中有两个com加载项,导致我的MATLAB不能写入数据!所以,果断把他搞到非活动区,操作:还是在这一页,下面有个:管理--选择com加载项,点击转到,然后将该加载项前面取消勾选!搞定!!
我对这玩意不熟,以上表述很不专业,不然也不至于折磨我好几天!能解决问题就行了。
以上是关于关于MATLAB读取端口数据的问题的主要内容,如果未能解决你的问题,请参考以下文章
关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法