我想实现比如,协调器广播发送数据,然后9个路由接收到都返回一串数据,让协调器串口打印出来,但是实际效果是会产生协调器接收数据丢失问题(应该可能是串口DMA方式输出与路由返回数据冲突),造成有时候只收到4-8个之间,有什么办法解决没有?
VV:
你的9个路由在接收数据以后,相互之间做一个随机的延迟,保证节点往上发数据的时候,碰撞概率减少。
user3877568:
回复 VV:
那这个随机时间怎么选取呢?比如这个定时时间为这个osal_rand() & 0x01ff,这样会不会太大
我想实现比如,协调器广播发送数据,然后9个路由接收到都返回一串数据,让协调器串口打印出来,但是实际效果是会产生协调器接收数据丢失问题(应该可能是串口DMA方式输出与路由返回数据冲突),造成有时候只收到4-8个之间,有什么办法解决没有?
你的9个路由在接收数据以后,相互之间做一个随机的延迟,保证节点往上发数据的时候,碰撞概率减少。
回复 VV:
那这个随机时间怎么选取呢?比如这个定时时间为这个osal_rand() & 0x01ff,这样会不会太大