让我直接回答这个问题。
假设我有一个Arduino Uno(COM4)和Arduino Mega(COM5),两者都是通过串口与我的操作系统进行通信。如何检测COM4是否真的是Arduino Uno,这样我就不会错误地将程序连接到COM5端口?连接到串口的过程由我的程序在运行时完成。
我在网上看到的代码here in another SO question以及我之前对该代码的实验,它只列出了所有串口,但没有透露出该设备是什么(所以程序不知道什么是真正的设备,可以是Arduino Uno或Arduino Mega或其他东西)。
所以我的问题是,我怎样才能达到这个目的?跨平台是首选,但如果这样的事情无法实现,那么请回答如何在Windows内部进行操作(因为我目前正在为使用Windows操作系统的计算机开发此程序)
答案 0 :(得分:1)
您可以在连接后立即要求设备识别自己。为此,您希望在设备的固件中支持设备识别。
将以下逻辑添加到arduino sketch的loop
方法防御中:
int inputData = Serial->read();
if (inputData == IDENTIFICATION_REQUEST) {
// respond with information that identify the device
}
然后,您可以检查程序连接到哪个设备以发送IDENTIFICATION_REQUEST
。