Re: tuyaOS模组WBR3 SDK3.5.3串口收发严重BUG
经过测试 WBR3 串口数据接收没有问题(Tuyaos 3.5.3),并没有出现数据乱序现象,日志截图如下:
完整日志和测试 demo 如下:
经过测试 WBR3 串口数据接收没有问题(Tuyaos 3.5.3),并没有出现数据乱序现象,日志截图如下:
完整日志和测试 demo 如下:
专家您好 我是两个问题:问题1:就是您这边测试出来的 我一次性发送了20个字节 模块却收了2次 一次1个字节 一次19个字节 如果 我串口发送的频率为100ms 或者更低 会导致接收到的次数和每次的数量不确定 正常应该是我一次性发送了20个字节 模组一次也应该收到20个字节。 问题2: 串口发送会出现乱序 不是接收 模组通过串口发送20个字节的数据 会出现乱序问题 最后一个字节 会出现在下一帧的开头 请知悉 谢谢
jafatek 2023年 Feb 20日 10:44专家您好 我是两个问题:问题1:就是您这边测试出来的 我一次性发送了20个字节 模块却收了2次 一次1个字节 一次19个字节 如果 我串口发送的频率为100ms 或者更低 会导致接收到的次数和每次的数量不确定 正常应该是我一次性发送了20个字节 模组一次也应该收到20个字节。 问题2: 串口发送会出现乱序 不是接收 模组通过串口发送20个字节的数据 会出现乱序问题 最后一个字节 会出现在下一帧的开头 请知悉 谢谢
你好,你说的2个问题是吗?
1,串口接收,串口工具一次性发送20字节会分开接受,分别是1,19字节
2,串口发送,模组一次性发送20字节,频率快的话会出现类似粘包的现象?(字节顺序不变,多次发送粘在一起,界限不分?),
对于第二个问题,如果你发送2次,第一次是"AA BB CC DD EE", 第二次发送 "00 11 22 33 44"。对于工具接收是 "AA BB CC DD " ," EE 00 11 22 33 44"? 还是说"AA BB CC DD EE" ," EE 00 11 22 33 44"?
你好,你说的2个问题是吗?
1,串口接收,串口工具一次性发送20字节会分开接受,分别是1,19字节
-------》是的!
-------》另外补充,发送频率低 大概率 会 分开接收 分别是1,19
如果串口工具发送频率加快(发送间隔100ms或者更低)会发现模组接收的不确定性(不确定模组会分几包来接收这20个字节 每包也不确定时多少字节可能显示接收了3次 可能显示接收了2次 也可能接收了4次)
2,串口发送,模组一次性发送20字节,频率快的话会出现类似粘包的现象?(字节顺序不变,多次发送粘在一起,界限不分?),
-------》是的!
-------》举例:模组发送固定数据 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14
串口工具监测:模组发出的第一帧 大概率 是对的:01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14
模组发出的第二帧 和后面的帧就是错的 14 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
jafatek 2023年 Feb 21日 11:06你好,你说的2个问题是吗?
1,串口接收,串口工具一次性发送20字节会分开接受,分别是1,19字节
-------》是的!
-------》另外补充,发送频率低 大概率 会 分开接收 分别是1,19
如果串口工具发送频率加快(发送间隔100ms或者更低)会发现模组接收的不确定性(不确定模组会分几包来接收这20个字节 每包也不确定时多少字节可能显示接收了3次 可能显示接收了2次 也可能接收了4次)2,串口发送,模组一次性发送20字节,频率快的话会出现类似粘包的现象?(字节顺序不变,多次发送粘在一起,界限不分?),
-------》是的!
-------》举例:模组发送固定数据 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14
串口工具监测:模组发出的第一帧 大概率 是对的:01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14
模组发出的第二帧 和后面的帧就是错的 14 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
关于问题 2 中(模组发出的第一帧 大概率 是对的,模组发出的第二帧 和后面的帧就是错的)问题,经过测试没有出现这种问题(wbr3, tuyaos 3.5.3)。日志截图和测试代码如下:
文件中包含完整测试代码:发送串口为 串口0
会出现这样的情况?2个14?
如果你那里出现 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 14 01 02 这种情况的话,方便的话,麻烦下把相关代码会出现问题的代码提供下,我们看下
代码如下,主要功能就是在我自己的线程中接收来自云端的dpid的消息 然后通过串口发送出去,我用日志那路串口监测要发送的20个字节的数组 发现我的数组中的数据是没问题的 但是串口工具中看到的模组串口发出来的是有问题的
jafatek 2023年 Feb 22日 09:40代码如下,主要功能就是在我自己的线程中接收来自云端的dpid的消息 然后通过串口发送出去,我用日志那路串口监测要发送的20个字节的数组 发现我的数组中的数据是没问题的 但是串口工具中看到的模组串口发出来的是有问题的
你的业务代码有点问题,从串口上接收到的数据流你应该根据你的数据帧格式在进行进一步的处理,不能直接认为串口一次接收到的数据就是你发送的一帧的数据。
下面是大致根据你的需求,提供了一个简单的示例,该示例仅供参考:
简单测试,电脑上串口工具 20ms 发送一次,接受到一帧,模组再写回到电脑并不会出现丢失数据的情况,日志截图如下:
串口数据帧处理日志如下: