配置串口如下所示
14-Jun-16 15:41:32.300 [RX] - :010400000036C5<CR><LF>
14-Jun-16 15:41:32.316 [TX] - :01046C00009FDA740049FF000085066AEB1E0F00003AFE00007B1F00040000000B000400000000000000003F8000002B4DDEB375E0EEA0000000044E1DD31400001F1E4D42312E302E300022D0837A33303030525300C6BB4187C05445542F414900AF6EFDFBFF937EA47A5F3D65BFA5<CR><LF>
14-Jun-16 15:41:32.341 [RX] - :01046C00009FDA740049FF000085066AEB1E0F00003AFE00007B1F00040000000B000400000000000000003F8000002B4DDEB375E0EEA0000000044E1DD31400001F1E4D42312E302E300022D0837A33303030525300C6BB4187C05445542F414900AF6EFDFBFF937EA47A5F3D65BFA5<CR><LF>
下面给出了预期的输出,即3-4次中的5次
14-Jun-16 15:41:32.596 [RX] - :010400000036C5<CR><LF>
14-Jun-16 15:41:32.602 [TX] - :01046C00009FDA740049FF000085066AEB1E0F00003AFE00007B1F00040000000B000400000000000000003F8000002B4DDEB375E0EEA0000000044E1DD31400001F1E4D42312E302E300022D0837A33303030525300C6BB4187C05445542F414900AF6EFDFBFF937EA47A5F3D65BFA5<CR><LF>
14-Jun-16 15:41:32.608 [RX] - 2E<NAK>ꢂ‚¢Ê2e<ENQ>‚‚‚ª‚²²<LF>
U%**<ENQ>2<ENQ>‚‚‚š<LF>
eU<LF>
‚‚‚º<DC2><NAK>2<ENQ>‚‚¢‚‚‚‚‚‚‚<DC2><ENQ>‚‚¢‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚š2…‚‚‚‚‚'<DC2>E"EUJjÓSS<DC4>¦TT(&LL˜˜00044E1DD31400001F1E4D42312E302E300022D0837A33303030525300C6BB4187C05445542F414900AF6EFDFBFF937EA47A5F3D65BFA5<CR><LF>
下面是我每5次获得1次的输出
ScrollContainer
任何人都可以帮助我,我很困惑。我错过了任何配置设置还是?
答案 0 :(得分:1)
看起来它可能是以下任何一个问题:
驱动程序(或HW收发器)误解了串行传输的起始位,因此错误解释了数据。
驱动程序(或HW收发器)误解了传输的一个位。这可能导致串行相位丢失。 使用示波器测量上升时间和信号衰减,以了解这是否是您的问题。
传输线上有短暂的噪音。此噪声可能仅在损坏的串行数据之前或期间稍微发生。如果您有记录示波器,则可以记录更长的波形并分析更长的传输。如果你没有日志示波器,调试这个的一个hacky方法是修改用户空间或驱动程序代码,一旦看到错误数据就将gpio设置为高,然后你可以将这个gpio连接到示波器触发器发生错误时冻结帧。然后,您可以使用手动解码技术来了解示波器上可见的波形是否正确构图。
有许多软件问题可能导致驱动程序踩到自身并破坏数据。
你没有写出这是什么类型的串行传输,但接地连接非常重要,你必须注意避免接地回路。
祝你好运!