软件使用Arduino HEX与RS232设备进行串行通信



大家好,,希望你没事

我的问题是当我用笔记本电脑通过rs232电缆发送帧(FE FE FE FE 68 99 99 99 99 99.99 68 23 0A 60 00 34 12 78 56 BC 9A F0 DE 2B 16(时,我可以用docklight之类的(FE FE FE 68 99 99 9999 99 99 68 23 02 60 80 6B 16(获得响应,但现在我想通过arduino获得响应,所以我在这里输入了图像描述

使用以下代码,但我没有得到任何响应(只有0000000000…(

#include<SoftwareSerial.h>
#define pinTX 2
#define pinRX 4
byte data[47];
SoftwareSerial RS232(pinRX, pinTX);
static byte trame1[]     = {0xFE,0xFE,0xFE,0xFE,0x68,0x99,0x99,0x99,0x99,0x99,0x99,0x68,0x23,0x0A,0x60,0x00,0x34,0x12,0x78,0x56,0xBC,0x9A,0xF0,0xDE,0x2B,0x16}; 
void setup() {

RS232.begin(9600);
Serial.begin(9600);
Serial.println("Starting");
}
void loop() {
for(int i=0;i<26;i++){
RS232.write(trame1[i]);
}
while (RS232.available()){
RS232.readBytes(data, 18);
}
delay(1000);
for (int i=0;i<47;i++){
Serial.print(data[i]) ;
}
Serial.print("n") ;
delay(5000);  
}

您是否尝试过从Arduino上的SoftwareSerial TX和RX引脚连接到RS-232电缆,并检查数据是否以这种方式传输?这可能是电压水平的问题。如果你将Arduino设置为垃圾邮件字符串,当你将其插入RS-232电缆时,你可以看到它,那么你就知道你的电压和连接是正确的。如果没有,请检查电压水平,因为Arduino只有5V。您还应该检查TX和RX是否已交换。

最新更新