Serial port 通过RS232与Arduino接口秤

Serial port 通过RS232与Arduino接口秤,serial-port,arduino-uno,Serial Port,Arduino Uno,我试图通过RS232从KERN ew220-3nm到Arduino Uno的磅秤上获取重量 #include <SoftwareSerial.h> SoftwareSerial mySerial(5,4); void setup() { Serial.begin(9600); mySerial.begin(9600); } void loop() { char a[200] = {0}; if (m

我试图通过RS232从KERN ew220-3nm到Arduino Uno的磅秤上获取重量

    #include <SoftwareSerial.h>

    SoftwareSerial mySerial(5,4);

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

    void loop() {
     char a[200] = {0};
     if (mySerial.available()){
      for (int i=0; i<20; i++) {
       a[i] = mySerial.read();
       Serial.println(a[i],BIN); 
      }
     }
    }
根据设备手册中的规范,它有1个起始位、8个数据位偶数奇偶校验位和1个停止位。在数据字节(2-9)中,最大数据位为6。总字节数为15。
按照这个解码,在某个时刻,我得到10作为停止位。此外,还有一些起始位后跟空闲状态。

您是如何用arduino编写刻度的?它不是TTL串行,因此您需要一个转换器


这篇文章可能会给你更多的信息

检查起始位和停止位的唯一方法是在RS-232线上使用示波器。从串行端口读取数据只提供每个字符帧的数据位。但在这里,当行空闲时,我也会得到结果。这将如何解释与数据不同的开始位和停止位?不鼓励只提供链接的答案,因为如果链接发生变化,信息就会丢失。最好是发布基本部分,主要是他需要给我们更多的信息,比如他是如何将天平连接到Arduino的。也许你需要读十六进制而不是二进制,这有点奇怪。我同意。当您有更多代表时,您可以将这些问题添加为评论。在查看新用户的答案时,我们会尽量注意链接之类的东西。我还对你的回答进行了一些编辑,以删除前面的问题(这可能会使它看起来像另一个问题而不是答案)。考虑到海报所问的问题从未得到解决,他们的链接没有太大用处。
11111111111111111111111111101001  
11111111111111111111111111110000  
11111111111111111111111110001110  
1110  
11111111111111111111111110011111  
11111111111111111111111111100000  
1110  
11111111111111111111111110100011  
1111100  
11  
1110  
11111111111111111111111110010001  
11111111111111111111111111000000  
11  
1110001  
11111111111111111111111111100000  
11  
1010101  
11111111111111111111111110100000  
1111  
11111111111111111111111111010110  
0