Mik*_*ike 6 embedded serial-port rs485
我的大脑是炒的,所以我想我会把这个传给社区.
当向我的嵌入式系统发送1个字符时,它始终认为它接收2个字符.第一个接收的字符似乎映射到传输的字符(以某种未知的方式),第二个接收的字符总是0xff.
这是我观察到的:
Tx char (in hex) Rx character (in hex), I left out the second byte (always ff)
31 9D
32 9B
33 99
61 3D
62 3B
63 39
64 37
65 35
41 7D
42 7B
43 79
Run Code Online (Sandbox Code Playgroud)
我检查了我的时钟,它们似乎没问题.这个非工作版本与之前版本的唯一区别是我现在使用的是RS485芯片.
我已将信号一直跟踪到MCU并且看起来很好(确认了RX引脚上的位值)
第一个收到的角色似乎映射到传输的角色(以某种未知的方式)
在每种情况下,TX字节向左移位1位然后反转.
例如:
31 = 00110001 9D = 10011101
0x31 << 1 = 01100010
01100010的补码是0x9D
我检查了其他几个,看起来对他们来说都是一样的.我不知道第二个字节来自哪里,但它可能是可能发生的信号反转的结果.
RS485使用差分信令.它闻起来就像你使用芯片的反相输出并插入RS232输入.
我已将信号一直跟踪到MCU并且看起来很好(确认了rx引脚上的位值)
你用什么信号作为地面参考?