Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Serial port Arduino系列1_Serial Port_Arduino - Fatal编程技术网

Serial port Arduino系列1

Serial port Arduino系列1,serial-port,arduino,Serial Port,Arduino,我用的是Arduino微型电脑。当我在Arduino的IDE串行监视器上使用“Serial.write”等时,一切正常 然而,当我试图通过“Serial1”读取或发送数据时,我什么也得不到。假设“串行1”分别使用0和1 RX,TX 我需要通过USB转换器连接这些管脚,还是将它们连接到USB转换器板上 代码如下: Void setup(){ Serial1.begin(4800); } Void loop(){ Serial1.prrint('X'); } 串行监视器可以读取的唯一连接到USB

我用的是Arduino微型电脑。当我在Arduino的IDE串行监视器上使用“Serial.write”等时,一切正常

然而,当我试图通过“Serial1”读取或发送数据时,我什么也得不到。假设“串行1”分别使用0和1 RX,TX

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

代码如下:

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

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

Serial1、Serial2和Serial3均为逻辑级串行,不会显示在Arduino串行监视器上

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

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连接,它将可用。

串行是唯一连接到USB的串行端口。所以串行监视器只能访问该端口。如果需要串行监视器访问串行1或串行2,则应使用“USB到TTL串行电缆”,并将其连接到arduino的串行1端口的RX和TX引脚。 请访问USB到TTL串行电缆的链接,

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

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

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

这来自Arduino的文档网站:


“…串行:0(RX)和1(TX)。用于使用ATmega32U4硬件串行功能接收(RX)和发送(TX)TTL串行数据。请注意,在Micro上,串行类指USB(CDC)通信;对于引脚0和1上的TTL串行,使用Serial1类。”你说得对,Serial1是RX和TX引脚,而Serial是计算机和Arduino之间的虚拟接口。我已经为无线模块使用了TX和RX引脚,如果您需要使用Serial1,它将必须占用引脚0和1,并且当您打开Arduino IDE写入此代码块时,在板上从DLINE切换到UART

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

选择arduino 9600端口并写入内容。如果您收到书面文本,您的arduino已从串行通信准备就绪。

请确保转到工具/电路板:并选择arduino Mega(或其他具有多个串行端口的电路板),否则它将无法工作,因为Uno只有一个串行通信端口(即1和0上引脚上的TX和RX引脚)!根据您在电路板上使用的TX和RX引脚,写入1、2或3。mega有一整套用于串行1、2和3的额外引脚,例如:

Arduino Uno(等):

Arduino Mega:

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


Serial1
针0和针1的类别错误。您应该使用
串行

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


串行类没有区别。

您必须使用谷歌SoftwareSerial library中的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 
  }

请出示您的代码;-)Void setup(){Serial1.begin(4800);}Void loop(){Serial1.prrint('X');}请编辑您的问题并将其添加到那里,以便任何人都可以轻松查看。这通常被认为是一种最佳实践,因此,如果您也使用它,那就太好了;-)这是错误的,Serial1用于RX和TX引脚。
Serial2.begin(9600)
Serial2.write("testing")
Serial3.begin(9600)
Serial3.write("testing")
//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 
  }