USB /串行设备与Arduino USB /串行接口的连接

时间:2015-05-03 00:38:38

标签: serial-port arduino usb arduino-uno ftdi

一方面,我有一个带有USB(FTDI芯片)接口的设备,以9600bps,N,8,1串行通信 - 这是Arduino USB /串行接口的默认配置。 另一方面,我有一个简单的Arduino草图,它启动一个串行会话并传输数据。

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600,SERIAL_8N1);
}

void loop() {
  // put your main code here, to run repeatedly: 
  char* data_to_send="66"; 
  SSEND(data_to_send);
  delay(5000);
}

String SSEND(char* data){
  String protocol="AT$SF=";
  protocol+=(String)data;
//  protocol+="\r";
  Serial.println(String(protocol));
  delay(1000);
  return "OK";
}

草图在连接到计算机时工作正常。 然后我尝试连接到设备,我看到Tx LED停止闪烁,所以它不会发送任何东西,当然设备不会像预期的那样工作。此外,我尝试直接从计算机向设备发送串行命令,它工作得很好。

所以我的问题是:

  • 为什么Arduino和我的设备之间的串行接口不起作用?
  • 为什么Arduino会在USB /串行接口从计算机切换到设备后停止发送数据
  • 使设备与Arduino配合使用的解决方案是什么?
  • 我应该切换TX& RX使用分离的FTDI电缆插入端口0和1?

感谢您的帮助

Picture of the connection

1 个答案:

答案 0 :(得分:1)

我怀疑该设备是USB设备而不是USB主机,并且您将两个USB设备插入了一起。 Arduino不是USB主机,USB连接始终需要一个主机。

根据USB规范,甚至不应该使用您正在使用的插头适配器,因为专门存在不同形状的插头,以致无法像在此所做的那样将两个设备互相插入。 / p>

使其工作的方法是使用另一块实际上支持充当USB主机的板。