通讯接口采用RS232C,所有数据均为ASCII码,每帧数据有9个字节组成.第一个字节为起始位,第二个字节为状态字A。
其中A状态字具体Bit位使用如下:
0:0...1...(省略)
1: 0...1...
2: 0...1...
3: 0...1...
4: 0...1...
5: 0...1...
6: 0正1负
7: 0动态1非动态
假如状态字A第7位为1,其他Bit位都为0。那么A状态字就是1000 0000 转成16进制为80。我在ASCII码对照表没找到相应的字符。这协议有问题吗?
我测试时往串口发的状态字A为byte(128)时(16进制80)。通过
System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
int intAsciiCode = (int)asciiEncoding.GetBytes(acsiiStr)[0];
其中acsiiStr
是从串口读取的状态字A的ASCII字符。将其转成16进制为3F。跟我发的不相符...