首页 > 解决方案 > 使用另一个串行将数据从 arduino 发送到处理

问题描述

我需要使用另一个串行将数据从 arduino teensy 发送到处理,因为默认串行(Serial.begin(9600))已经用于大程序

我尝试阅读一些关于如何更改我想要接收的序列号的参考资料(https://processing.org/reference/libraries/serial/Serial.html),但我认为它不会改变

void setup() {
  Serial.begin(115200); // already used 
  Serial2.begin(9600); // processing
}
void loop() {
  Serial.println("...") //big code that i am not allow to change
  Serial2.println("hello world");
  delay(1000);
}

我希望在我的处理中重复得到“hello world”,但我真的不知道如何编写代码,所以我可以从 Serial2 而不是从 Serial 获得价值

标签: arduinoserial-portprocessingteensy

解决方案


这取决于您使用的 Teensy 模块以及接线方式。

请参阅Teensy 使用硬件串行端口文章了解更多详细信息。

如果可能的话,我会尝试他们的 UART/USB 示例:

// set this to the hardware serial port you wish to use
#define HWSERIAL Serial1

void setup() {
    Serial.begin(9600);
        HWSERIAL.begin(9600);
}

void loop() {
        int incomingByte;

    if (Serial.available() > 0) {
        incomingByte = Serial.read();
        Serial.print("USB received: ");
        Serial.println(incomingByte, DEC);
                HWSERIAL.print("USB received:");
                HWSERIAL.println(incomingByte, DEC);
    }
    if (HWSERIAL.available() > 0) {
        incomingByte = HWSERIAL.read();
        Serial.print("UART received: ");
        Serial.println(incomingByte, DEC);
                HWSERIAL.print("UART received:");
                HWSERIAL.println(incomingByte, DEC);
    }
}

如果同时使用相同的 USB 连接,请与您的同事协商,以便您可以使用更简单的连接,它只是在处理中显示为另一个串行端口。

如果这不是一个选项:

  1. 仔细检查上面串行端口文章的引脚排列以及逻辑电平电压(例如可能是 3.3V,而不是 5V)
  2. 获得一个 USB 串行转换器(用于正确的逻辑电平) - 这将显示为使用处理的不同串行端口Serial.list()
  3. connectSerial2TXpin 到转换器的RXpin 并在 Processing 中读取数据(类似于您读取的过程Serial,只是不同的端口名称)

推荐阅读