Serial port Arduino系列1
我用的是Arduino微型电脑。当我在Arduino的IDE串行监视器上使用“Serial.write”等时,一切正常 然而,当我试图通过“Serial1”读取或发送数据时,我什么也得不到。假设“串行1”分别使用0和1 RX,TX 我需要通过USB转换器连接这些管脚,还是将它们连接到USB转换器板上 代码如下: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
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
}