你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32WB5MMG蓝牙问题

[复制链接]
Bonj 提问时间:2024-4-9 17:01 / 未解决

我通过用STM32WB5MMG的设计的传感模块与USB dongle进行通信(蓝牙通知 单次通知数据243Bytes)

1.我只有每次下载完程序才能正常与USB dongle通信和工作 2.再次上电,我可以发现设备并且连接,但是不能蓝牙通知和发现服务。并且用nrf connect软件点击断开连接后无法再次连接设备

我改如何解决上述发现的问题

收藏 评论8 发布时间:2024-4-9 17:01

举报

8个回答
butterflyspring 回答时间:2024-4-10 16:51:12
不清楚你产品中跑的什么软件以及硬件状况,不妨先试试官方的例程。注意移植时注意硬件接口的差异。

STM32Cube_FW_WB_V1.19.0\Projects\P-NUCLEO-WB55.USBDongle\Applications\BLE\BLE_p2pClient

STM32Cube_FW_WB_V1.19.0\Projects\P-NUCLEO-WB55.Nucleo\Applications\BLE\BLE_p2pServer

Bonj 回答时间:2024-4-10 17:25:52

butterflyspring 发表于 2024-4-10 16:51
不清楚你产品中跑的什么软件以及硬件状况,不妨先试试官方的例程。注意移植时注意硬件接口的差异。</p>
<p>STM32C ...

谢谢你的回复:

这些都没啥问题,我又测试了几遍,我觉得我最主要问题来源于我每次结束传输都是以client或者server断电,这些就会造成上述我所说的问题。

如果我用nrf connect手机app点击disconnect结束蓝牙通知数据,下次我就可以正常工作。

我觉得主要问题在于我这种直接断电来结束蓝牙交互,我该如何解决这个问题。

butterflyspring 回答时间:2024-4-10 17:37:31
Bonj 发表于 2024-4-10 17:25
[md]谢谢你的回复:

这些都没啥问题,我又测试了几遍,我觉得我最主要问题来源于我每次结束传输都是以cl ...

通常要由一方发起断开连接才行。

如果一方断电,另一方要30秒后才能断开连接。
Bonj 回答时间:2024-4-10 19:29:48

butterflyspring 发表于 2024-4-10 17:37
通常要由一方发起断开连接才行。</p>
<p>如果一方断电,另一方要30秒后才能断开连接。

你的意思是我假如client拔出来断电后,这个server必须要等待三十秒才能让我的sever下次通电正常运行吗?

有没有别的方式 比如断电上电不影响这个。。。我上次用STM32WB55RGV6做了个demo,没出现这个问题,我需要改动什么吗

butterflyspring 回答时间:2024-4-11 10:54:39
蓝牙协议规范中,当设备断电或断开连接时,另一方设备将开始一个超时过程来确定连接是否已经断开。这个超时时间可以根据不同的蓝牙版本和设备配置有所不同。在蓝牙核心规范中,这个超时通常被称为“监视器超时”(Supervision Timeout)。
监视器超时是蓝牙连接中的一个参数,用于检测设备间是否丢失了连接。如果在超时时间内没有收到对方设备的任何数据包,那么蓝牙设备会认为连接已经丢失,并将其断开。超时时间可以在连接建立时协商设置,并且可以根据应用需求和电源管理策略进行调整。

BLE Supervision_timeout1.png BLE Supervision_timeout2.png
Bonj 回答时间:2024-4-17 09:48:59

butterflyspring 发表于 2024-4-11 10:54
蓝牙协议规范中,当设备断电或断开连接时,另一方设备将开始一个超时过程来确定连接是否已经断开。这个超时 ...

我还是不理解如何解决这个问题,比如我通过手机的nrf connect软件和我做的demo连接并且进行ble notification,一会我点击disconnection再次连接那么我是正常的;但是如果此时我把手机蓝牙直接断开,按照你给的提示,我做的PCB demo再通电30s就会自动认为断连,我下次连接或者工作应该是正常的,但是实际上我把手机蓝牙直接关闭不管等多久,我做的demo依旧不能正常工作,除非我再次下载程序(我非蓝牙的功能是正常的,只是每次断连蓝牙不太正常)

butterflyspring 回答时间:2024-4-18 14:35:15
Bonj 发表于 2024-4-17 09:48
[md]我还是不理解如何解决这个问题,比如我通过手机的nrf connect软件和我做的demo连接并且进行ble notif ...

这个情况看起来很难说了,不妨跑一下官方例程看看效果。
Bonj 回答时间:2024-4-19 17:18:19

butterflyspring 发表于 2024-4-18 14:35
这个情况看起来很难说了,不妨跑一下官方例程看看效果。

我跑的那个官方例程BLE_HeartRate,它工作非常正常。

然后我在自己写的程序中做了如下改动:我disabled两个宏定义CFG_HW_RESET_BY_FW和CFG_DEBUGGER_SUPPORTED,并且在MX_APPE_Init()函数中添加APPD_Init(),此时断电断开蓝牙再通电是可以再次正常传输数据,但是又出现新的问题:我有两个采集信号的芯片的MAX30112(具有1个中断引脚)和MAX30001(具有两个中断引脚),我发现此时我不能识别到MAX30001的中断,我该如何做?是什莫东西会屏蔽我的中断吗(MAX30001的中断引脚是PC10和PC11)?

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版