shawn-h 发表于 2016-8-31 22:41:18

arduino通过MAX485产生的485信号和PC通过仿真产生的串口有什么区别

现在碰到一个问题,就是一个接收485信号的板子,可以通过连接电脑的USB转485通过串口仿真器产生的信号控制。

但是通过ARDUINO UNO,连接MAX485,产生的485信号就无法控制。




控制程序如下


String comdata = "";
int i=0;
int n=0;

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

void loop() {
if(i==5){
    char A[]={0x7F,0x05,0x41,0x00,0x01,0x45,0xEF};
    //Serial.write(&A,7);
    Serial.print(A);
    Serial.print(A);
    Serial.print(A);
    Serial.print(A);
    Serial.print(A);
    Serial.print(A);
    Serial.print(A);

}

i++;
if(i>10000){
    i=10;
    n++;
}
if(n>50){
    i=0;
    n=0;
}//延时控制

while (Serial.available() > 0)
    {
      comdata += char(Serial.read());
      delay(2);
    }
    if (comdata.length() > 0)
    {
      Serial.println(comdata);
      comdata = "";
    }
}

通过USB转485和232转485都读取到了正确的ASCII码,但是只要PC发出就可以控制,arduino发出就没有响应。

275891381 发表于 2016-9-1 07:55:54

char A[]={0x7F,0x05,0x41,0x00,0x01,0x45,0xEF};
0x7E吧

maidoo 发表于 2016-9-1 09:25:24

275891381 发表于 2016-9-1 07:55 static/image/common/back.gif
char A[]={0x7F,0x05,0x41,0x00,0x01,0x45,0xEF};
0x7E吧

LZ笔误,被发现了了,哈哈!

shawn-h 发表于 2016-9-1 13:07:16

275891381 发表于 2016-9-1 07:55 static/image/common/back.gif
char A[]={0x7F,0x05,0x41,0x00,0x01,0x45,0xEF};
0x7E吧

还真是尴尬了
页: [1]
查看完整版本: arduino通过MAX485产生的485信号和PC通过仿真产生的串口有什么区别