gpt4 book ai didi

无法从 arduino 发送 RS-232 命令

转载 作者:行者123 更新时间:2023-11-30 16:11:39 25 4
gpt4 key购买 nike

从 Arduino Mega 向 ENTTEC DMXStreamer 发送 RS-232 命令时遇到问题。 RS-232 API 位于此处 enter link description here 。我正在尝试发送 3 个命令 H1(停止显示)HA(在插槽 A 中加载显示)H0(开始已加载的显示)。我尝试了多种方法来发送数据。

setup(){
Serial2.begin(9600); //default baud rate of DMXStreamer
Serial.begin(115200);
}
loop(){
Serial2.print("H1HAH0");
delay(3000);
}

我也尝试过

Serial2.write(0x48);
Serial2.write(0x31);
Serial2.write(0x48);
Serial2.write(0x41);
Serial2.write(0x48);
Serial2.write(0x30);

我从 DMXStreamer 得到的返回就是“”。我什至没有将这些字符视为 API 中可能的响应代码。成功发送应该返回“!”否定响应是“?”。

这是我用来读取响应的代码。

String Message = "";
while(Serial2.available())
{
char inChar = Serial2.read();
Message += inChar;
}
Serial.println(Message);

然后,我将 USB 串行转换器连接到 DMXStreamer 并使用 Realterm 发送数据。我转到 Realterm 中的“发送”选项卡,在框中输入“H1HAH0”,然后按“发送 ASCII”按钮。流光返回了积极的回应!我得到了预期的结果,插槽 A 中的 DMX 显示开始播放。

我在发送数据时做错了什么。作为旁注,我曾经想使用命令 H3101 而不是 H0。 API 命令的注释如下。我不确定如何根据注释发送命令的 101 部分。任何帮助将不胜感激。

来自 APIH 命令该命令用于启动、停止节目以及设置节目运行。

  • H0命令,开始显示格式H0

如果没有存储任何节目,这将不起作用

  • H1 命令,停止显示 该命令将停止显示。

格式 H1

  • H3 命令,开始播放并循环播放

格式 H3x警告 X 值是 8 位二进制数据,而不是 ASCII。该命令将启动节目并循环 X 次。要运行一次表演,X 必须设置为 0x00,最大循环数为 100。如果 X 设置为 101该节目将永远循环。

最佳答案

字节在 9600 波特率下传输缓慢。您将在它们之间和到达之前看到 available() 0。使用Serial2.readString()进行测试。它等待下一个字节直到一秒钟。

String Message = Serial2.readString();
Serial.println(Message);

注意:这是为了测试。不要在最终草图中使用 String 或 readString。使用指定长度或终止符的 C 字符串和 readBytes。

关于无法从 arduino 发送 RS-232 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58566732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com