打印
[蓝牙芯片]

CH579M调用更新广播内容函数后BLE就死机的问题

[复制链接]
3170|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
SwaveYu|  楼主 | 2021-5-19 20:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
static void performPeriodicTask( void )
{
    /* 每隔一秒更新广播数据 */
    GAP_UpdateAdvertisingData( Peripheral_TaskID, TRUE, strlen(advertData), advertData );
}
performPeriodicTask函数设置为每隔1s调用一次,但只要advertData中的数据被改了,蓝牙就再也无法正常广播信号(蓝牙调试助手无法检测到蓝牙信号),如果使能了HAL_SLEEP=TRUE,程序则进入睡眠模式后再也无法被唤醒。performPeriodicTask函数设置如下就会出现上述问题。
static void performPeriodicTask( void )
{
    advertData[7] = 0xaa;
    GAP_UpdateAdvertisingData( Peripheral_TaskID, TRUE, strlen(advertData), advertData );
}

使用特权

评论回复
评论
SwaveYu 2021-5-21 13:38 回复TA
@WCHTech2 :好的 
WCHTech2 2021-5-21 10:09 回复TA
@SwaveYu :麻烦再发我邮箱tyk@wch.cn, 我这下载不了,很奇怪 
SwaveYu 2021-5-21 09:58 回复TA
@WCHTech2 :方便帮忙看看嘛,麻烦你了 
SwaveYu 2021-5-20 19:49 回复TA
@WCHTech2 :发了 
WCHTech2 2021-5-20 14:34 回复TA
您好,方便的话把工程发出来,我这调试下的,或者电话联系技术:025-52638373 
沙发
SwaveYu|  楼主 | 2021-5-20 19:48 | 只看该作者
这是工程,第一次连接上蓝牙后,从串口确实看到每隔一秒都会触发更新广播内容任务,但当蓝牙调试助手断开蓝牙连接想看看广播内容是否改变时,却直接搜不到蓝牙信号了

Peripheral.zip

2.44 MB

使用特权

评论回复
板凳
WCHTech2| | 2021-5-21 15:50 | 只看该作者
参考该方法
static void performPeriodicTask( void )
{
     PRINT("performPeriodicTask\r\n");
      advertData[10] = advertData[10]++;
      PRINT("UpdateAdvertisingData\r\n");
      GAP_UpdateAdvertisingData( Peripheral_TaskID, TRUE, sizeof(advertData), advertData );
}
工程见附件
Peripheral.zip (2.44 MB)

使用特权

评论回复
评论
SwaveYu 2021-5-21 18:46 回复TA
真的很感谢!看了你的代码后才发现我的主要问题出在GAP_UpdateAdvertisingData( Peripheral_TaskID, TRUE, sizeof(advertData), advertData );这里传参应该用sizeof而我却用了strlen 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

24

帖子

0

粉丝