关于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的imread函数

matlab:matlab关于原图修改及画图的相关问题

关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法

matlab如何读取结构体中的数据,比如我想利用里面的数据画图

关于stm32端口的输入输出模式配置的问题

matlab 关于保存图像的问题