我正在使用Arduino Micro。当我使用" Serial.write"等等与Arduino的IDE串口监视器一切正常。
然而,当我尝试通过" Serial1"读取或发送数据时,我什么都没得到。 "接口Serial1"假设分别使用0和1 RX,TX。
我是否需要通过USB转换器连接这些引脚,还是将它们连接到主板USB转换器上?
以下是代码:
Void setup(){ Serial1.begin(4800); }
Void loop(){ Serial1.prrint('X'); }
答案 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)
如果您使用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)
Serial1
是错误的类。您应该使用Serial
类。
我是否需要通过USB转换器连接这些引脚,还是将它们连接到主板USB转换器上?
对于Serial类没什么区别。