如何检查串口是否有效吗?
54视图(30天)
显示旧的评论
你好
我想创建一个对话框,让用户输入一个连接到一个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));
结束
结束
对话框(谢谢你正确的相称的)
0评论
答案(1)
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