#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 400
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 800
因通信数据不频繁及为了降低功耗,把链接间隔设为0.5~1秒间。测试时,发送频率大概在2~3秒/次,出现的丢包现象很严重,应该怎么解决此问题?谢谢!
da qin zheng sheng:
powersaving打开了不?仔细慢慢调节改变链接参数。
zha zhao:
回复 da qin zheng sheng:
powersaving打开了,如果在不改变链接参数的情况下,有什么机制能解决这个问题吗?
Yue TANG:
测一下晶振的频偏。如果是频偏过大,可以调整高速晶振两边的电容把频偏调小再测下试试。
zha zhao:
回复 Yue TANG:
有一个问题没有搞明白,如果把蓝牙的最小链接设为3秒,最大链接设为4秒,个人理解是在3~4秒间任意时候才会有蓝牙与蓝牙间的数据传输,不知道我的这种理解是否对?如果在2秒的时候收到串口数据,就是不在蓝牙与蓝牙的数据传输间收到串口数据,这个数据是立刻通过蓝牙发送出去(如果此时发送出去另一边的蓝牙肯定收不到)还是放在发送缓冲区,等待蓝牙与蓝牙的数据传输期间再发送?
Viki Shi:
回复 zha zhao:
1、连接间隔设置以最小设置为准
2、放在缓冲区,等蓝牙连接时再发送
zha zhao:
回复 Viki Shi:
既然是放缓冲区,最小链接是0.5秒,最大是1秒,每2秒只发送了一帧数据,为什么还会丢包呢?
Yue TANG:
回复 zha zhao:
抓下包,确认是否真的是包没发出来。为什么我提到频偏是因为,频偏太大是会出现丢包情况的。
http://processors.wiki.ti.com/index.php/BLE_sniffer_guide
kqian0327:
你好,
是不是蓝牙已经断开连接了?
latency是否为0还是为其他的值?
建议你还是抓包看一下。