Arduino Serial1

时间:2014-02-21 20:52:18

标签: serial-port arduino

我正在使用Arduino Micro。当我使用" Serial.write"等等与Arduino的IDE串口监视器一切正常。

然而,当我尝试通过" Serial1"读取或发送数据时,我什么都没得到。 "接口Serial1"假设分别使用0和1 RX,TX。

我是否需要通过USB转换器连接这些引脚,还是将它们连接到主板USB转换器上?

以下是代码:

Void setup(){ Serial1.begin(4800); } 
Void loop(){ Serial1.prrint('X'); }

9 个答案:

答案 0 :(得分:7)

连接到USB的串行监视器可以读取的唯一串行端口是串行。

Serial1,Serial2和Serial3都是逻辑级串行的,不会出现在Arduino串行监视器上。

如果要在计算机上查看这些输出,则需要额外的硬件。

答案 1 :(得分:5)

Serial是唯一连接USB的串口。因此串行监视器只能访问该端口。如果您需要通过串行监视器访问Serial1或Serial2,则应使用“USB to TTL Serial Cable”并将其连接到arduino的 Serial1 端口的RX和TX引脚。 请访问USB到TTL串行电缆的链接,enter link description here

答案 2 :(得分:1)

Arduino Micro中的“Serial1”物理连接到TX和RX引脚(TTL),“Serial”只是一个“虚拟端口”,您可以使用Arduino IDE的串行监视器读取,这就是为什么arduino micro与nano或pro mini等其他产品略有不同。

如果您使用Serial和Serial1,您可以接受这一优势并使用USB上传代码并建立蓝牙连接(使用HC06连接到物理引脚),而无需断开USB电缆并为两个设备(微型和蓝牙)供电。

如果您有时无法将代码上传到微处理器,请按micro的重置按钮然后将其释放并按Arduino IDE中的上传按钮。 “虚拟端口”有时需要重新启动并使用USB进行连接。

这是来自Arduino的文档网站:

“......串行:0(RX)和1(TX)。用于使用ATmega32U4硬件串行功能接收(RX)和发送(TX) TTL串行数据。注意< strong>在Micro上,Serial类是指USB(CDC)通信;对于引脚0和1上的TTL串行,请使用Serial1类。“

答案 3 :(得分:1)

你说得对,Serial1是RX和TX引脚,而Serial是计算机和Arduino之间的虚拟接口。我已将TX和RX引脚用于无线模块,如果您需要使用Serial1,则必须占用引脚0和1,并且从DLINE切换到电路板上的UART

答案 4 :(得分:0)

Void setup()
{ 
Serial.begin(4800);  //9600.... 
}
void loop()
{

 if(Serial.available())    
 {   
  int a= Serial.read();
  Serial.Writeln(a);
 }
 else
 {
  Serial.Writeln("Error");
  }
}

打开串行监视器,图标位于Arduino IDE的右下角。如果您将Arduino与PC连接,它将可用。

答案 5 :(得分:0)

当您打开Arduino IDE时,请编写此代码块

 Void setup()
    { 
    Serial.begin(9600);
    }
    void loop()
    {
     if(Serial.available())    
     {   
      char get= Serial.read();
      Serial.Write(get);
     }
    }

选择arduino 9600端口并写一些东西。如果你得到了你的书面文本,你的arduino就可以通过串行通讯来准备......

答案 6 :(得分:0)

确保你去工具/板:并选择Arduino Mega(或其他具有多个串行端口的电路板),否则它将无法工作,因为Uno只有一个串行通信端口(也就是引脚上的TX和RX引脚)在1和0)!写入1,2或3,具体取决于您在电路板上使用的TX和RX引脚。对于Serial 1,2和3,mega有一整套额外的引脚,例如:

Arduino Uno(等):

Serial.begin(9600)
Serial.write("testing")

Arduino Mega:

Serial1.begin(9600) // <{or what even baud rate you should use}
Serial1.write("testing")

Serial2.begin(9600)
Serial2.write("testing")

Serial3.begin(9600)
Serial3.write("testing")

答案 7 :(得分:0)

您必须使用SoftwareSerial库中的SoftwareSerial类定义Serial1,并下载该库:

代码应该是这样的:

//Example
SoftwareSerial Serial1(9 , 10)  ; //Rx and Tx respectively 

Void setup() { 
    Serial1.begin(4800); //Here is your New serial 
    Serial.begin(9600);//This is where arduino is connected to your PC
       }
 Void loop(){
   //Code goes Here 
  }

答案 8 :(得分:-1)

对于引脚0和引脚1,

Serial1是错误的类。您应该使用Serial类。

  

我是否需要通过USB转换器连接这些引脚,还是将它们连接到主板USB转换器上?

对于Serial类没什么区别。