如何检查串口是否有效吗?

54视图(30天)
马丁·维拉斯
马丁·维拉斯 2019年4月18日
编辑: 凯尔·威尔金2020年3月13日
你好
我想创建一个对话框,让用户输入一个连接到一个Aruino相称,如果相称却无效,那么它将允许您输入另一个相称。问题是,不管相称我输入什么,‘COM5’,‘COM6’,等。它将输出下面的对话框,表明它实际上是正确的端口,这当然不是这样。
所以我的问题是我怎样才能发现相称arduino专门连接,将其保存在一个变量,将其传递给串行()函数,并检查是否有效。
我使用seriallist只读输出,据我所知。
提示= {输入COM端口号,例如,如果Windows用户使用COM6如果使用MAC使用/dev/tty。”};
dlgtitle =COM端口的;
definput = {“30”};
回答= inputdlg(40[1],提示,dlgtitle definput);
com =字符串(回答(1));
如果(串行(sprintf(是否是可用的。' % s 'com)))
ser = sprintf (' % s 'com);
(~ isvalid(串行(ser)))
回答= inputdlg (“不是vlaid相称,请再试一次”,40 [1]dlgtitle definput);
ser =字符串(回答(1));
结束
结束
对话框(谢谢你正确的相称的)

答案(1)

Rohan羽衣甘蓝
Rohan羽衣甘蓝 2020年2月14日
在我的理解你的目标是获取一个Arduino的串行com端口连接。可能有两个解决方案。万博 尤文图斯
1。你提到的seriallist函数实际上可用于检测,但我建议使用serialportlist API:
可能被你的字符串数组输出在一个循环中serialportlist arduino对象创建命令假设arduino电路板的名字是已知的。
一个= arduino (com);
例如,%
一个= arduino (com,“UNO”);
%,com是serialportlist的输出的一个字符串
您可能想把它们放在try和catch语句。一个成功的对象创建建议一个有效的端口。
2。以防Arduino boardname和com端口是未知的,尝试创建Arduino对象和串行通讯端口和董事会的名字
一个= arduino ();
a.Port
a.Board
1评论
凯尔·威尔金
凯尔·威尔金 2020年3月13日
编辑:凯尔·威尔金 2020年3月13日
有什么类似于serialportlist之前2019 b吗?我用2019在离线电脑升级并不容易。

登录置评。

类别

找到更多的在MATLAB为万博1manbetxArduino硬件支持包帮助中心文件交换

s manbetx 845


释放

R2018b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!