首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从arduino发送RS-232命令

无法从arduino发送RS-232命令
EN

Stack Overflow用户
提问于 2019-10-25 23:11:24
回答 1查看 409关注 0票数 0

在发送从Arduino Mega到ENTTEC DMXStreamer的RS-232命令时出现问题.RS-232 API位于这里,在这里输入链接描述。我试图发送3个命令H1 (停止显示) HA (在插槽中加载显示) H0 (已加载的开始显示)。我尝试过多种方法来发送数据。

代码语言:javascript
复制
setup(){
    Serial2.begin(9600); //default baud rate of DMXStreamer
    Serial.begin(115200);
}
loop(){
    Serial2.print("H1HAH0");
    delay(3000);
}

我也试过

代码语言:javascript
复制
Serial2.write(0x48);
Serial2.write(0x31);
Serial2.write(0x48);
Serial2.write(0x41);
Serial2.write(0x48);
Serial2.write(0x30);

我从DMXStreamer得到的回报就是‘’。在API中,我甚至不认为这些字符是可能的响应代码。一个成功的发送应该返回'!‘负面反应是“?”。

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

代码语言:javascript
复制
String Message = "";
while(Serial2.available())
{
    char inChar = Serial2.read();
    Message += inChar;
}
Serial.println(Message);

然后,我将一个usb到串行转换器连接到DMXStreamer,并使用Realterm发送数据。我转到Realterm中的send选项卡,在框中键入"H1HAH0“,然后按下Send按钮。流线员回复了积极的回应!我得到了想要的结果,A插槽中的DMX节目开始播放。

我在发送数据时做错了什么。顺便提一句,我一度希望使用命令H3101而不是H0。来自API的命令的注释如下。我不知道如何根据笔记发送101部分的命令。任何帮助都将不胜感激。

来自API H命令,该命令用于启动、停止显示并将显示设置为运行。

  • H0命令,启动显示格式H0

如果没有存储任何显示,这将不会产生任何效果。

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

格式H1

  • H3命令,从循环时间开始显示

格式H3x警告X值是8位二进制数据,而不是ascii。此命令将启动显示并循环X次。若要运行显示,必须将X设置为0x00,循环的最大数目为100。如果X被设置为101,则显示将永远循环。

EN

回答 1

Stack Overflow用户

发布于 2019-10-26 05:42:35

在9600波特上,字节正在缓慢运行。您将看到他们之间和他们到达之前的available() 0。使用Serial2.readString()进行测试。它将等待下一个字节,直到第二字节。

代码语言:javascript
复制
String Message = Serial2.readString();
Serial.println(Message);

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58566732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档