Discuz! Board

标题: 关于蓝牙协议栈下的被动扫描和串口的矛盾问题 [打印本页]

作者: QINGJIAO_Hi    时间: 2022-4-1 16:17
标题: 关于蓝牙协议栈下的被动扫描和串口的矛盾问题
程序架构:
今天测试程序的时候发现,在蓝牙协议栈下用了2个功能,串口和蓝牙被动扫描。我设置了蓝牙扫描的 SCAN_INTERVAL  设置到了10秒,SCAN_WINDOW  设置了2秒。


问题:
发现串口接收在SCAN_WINDOW  扫描窗口期间,能正常接收,但是过了这个2秒的窗口期,则会难以接收,要收两次,才能识别到数据。


猜想:
就很像进入了低功耗模式,或者中断被关了一样。
暂未解决。请青风和各位论坛大神帮我解答下,以及程序上如何更改。
感谢万分!

作者: QINGJIAO_Hi    时间: 2022-4-1 16:22
上面描述有点不清晰
是在扫描windos期间,串口可以收到数据。
但是扫描windos过后,串口就要2次才能识别到数据。
作者: QINGJIAO_Hi    时间: 2022-4-1 16:33
我的串口的功能的实现:
在串口中断函数:在触发到了接收中断,则把数据放到  缓冲区中
然后在main里面:while循环里,进行解析缓冲区的数据,读取命令。

但是在扫描过后,则要2次,才能接到命令。但是它不会丢包
作者: admin    时间: 2022-4-1 21:17
QINGJIAO_Hi 发表于 2022-4-1 16:33
我的串口的功能的实现:
在串口中断函数:在触发到了接收中断,则把数据放到  缓冲区中
然后在main里 ...

串口2次才接收到数据是什么意思??
你是边扫描边接收串口数据还是干什么??
作者: QINGJIAO_Hi    时间: 2022-4-2 09:08
admin 发表于 2022-4-1 21:17
串口2次才接收到数据是什么意思??
你是边扫描边接收串口数据还是干什么??

边扫描,边接收串口数据。串口数据,我是发送给开发板
作者: QINGJIAO_Hi    时间: 2022-4-2 09:15
QINGJIAO_Hi 发表于 2022-4-2 09:08
边扫描,边接收串口数据。串口数据,我是发送给开发板

现在有两种情况,都是在蓝牙协议栈下:
第一种是正常情况:
边扫描边接收串口,串口的数据是能成功收到,成功解析的。
第二种情况是不正常的:
就是蓝牙停止扫描了,串口此时就很像进入了休眠。发送一次串口数据,串口收不到,
紧接着发送第2次串口数据,则串口就好像退出休眠了,就可以收到第一次和第二次 的两次数据。
作者: admin    时间: 2022-4-2 10:21
QINGJIAO_Hi 发表于 2022-4-2 09:15
现在有两种情况,都是在蓝牙协议栈下:
第一种是正常情况:
边扫描边接收串口,串口的数据是能成功收到 ...

不要主函数里的待机功能
作者: QINGJIAO_Hi    时间: 2022-4-2 11:00
admin 发表于 2022-4-2 10:21
不要主函数里的待机功能


应该是这个吧。我屏蔽掉了,可以了。谢谢

作者: QINGJIAO_Hi    时间: 2022-4-2 11:01
QINGJIAO_Hi 发表于 2022-4-2 11:00
应该是这个吧。我屏蔽掉了,可以了。谢谢

C:\Users\Administrator\Desktop\1648868370(1)
作者: QINGJIAO_Hi    时间: 2022-4-2 11:02
QINGJIAO_Hi 发表于 2022-4-2 11:00
应该是这个吧。我屏蔽掉了,可以了。谢谢

void nrf_pwr_mgmt_run(void)  函数里面的:  
PWR_MGMT_FPU_SLEEP_PREPARE(); //把这个屏蔽掉,好像就可以了。谢谢




欢迎光临 Discuz! Board (http://qfv8.com/) Powered by Discuz! X3