如何解决如何通过处理检测我的 arduino 连接到哪个串行端口?
所以我正在为 arduino 为 uni 作业创建一个用户界面。作业需要别人在自己的电脑上运行我的代码,所以需要想办法自动找到arduino连接的端口。
到目前为止,我已经编写了这个函数,它在 setup() 中运行,它循环遍历 Serial.list 中的每个端口并向每个端口发送一条消息。
然后 arduino 应向串行端口打印响应,然后应读取该响应以确认连接。
void serial_port_setup() {
delay(5000);
String[] port_list = Serial.list();
for (int i = 0; i < port_list.length; i++) {
Serial test_port = new Serial(this,port_list[i],115200);
test_port.write('i');
print("writing to port: ");
println(port_list[i]);
delay(500);
if (test_port.available() > 0) {
println("port available");
String serial_string = test_port.readStringUntil('\n');
if (serial_string.equals("initialising port")) {
myPort = test_port;
println("port found");
break;
}
}
}
println("Couldnt find a port");
}
我拥有的 arduino 代码是
void setup() {
Serial.begin(115200);
}
void loop() {
while (Serial.available()) {
if (Serial.read() == 'i') {
Serial.println("initialising port");
Serial.println("yay it worked");
}
}
}
writing to port: COM1
writing to port: COM3
Couldnt find a port
因此,即使 arduino 连接到 COM3,它也不会响应消息,或者从一开始就不会写入消息。 那么为什么这不起作用呢?有没有更好的方法来找到合适的串口?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。