[蓝牙芯片] CH579M调用更新广播内容函数后BLE就死机的问题

[复制链接]
 楼主| 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 );
}

评论

[url=home.php?mod=space&uid=2948500]@WCHTech2[/url] :好的  发表于 2021-5-21 13:38
[url=home.php?mod=space&uid=3223864]@SwaveYu[/url] :麻烦再发我邮箱tyk@wch.cn, 我这下载不了,很奇怪  发表于 2021-5-21 10:09
[url=home.php?mod=space&uid=2948500]@WCHTech2[/url] :方便帮忙看看嘛,麻烦你了  发表于 2021-5-21 09:58
[url=home.php?mod=space&uid=2948500]@WCHTech2[/url] :发了  发表于 2021-5-20 19:49
您好,方便的话把工程发出来,我这调试下的,或者电话联系技术:025-52638373  发表于 2021-5-20 14:34
 楼主| SwaveYu 发表于 2021-5-20 19:48 | 显示全部楼层
这是工程,第一次连接上蓝牙后,从串口确实看到每隔一秒都会触发更新广播内容任务,但当蓝牙调试助手断开蓝牙连接想看看广播内容是否改变时,却直接搜不到蓝牙信号了

Peripheral.zip

2.44 MB, 下载次数: 22

WCHTech2 发表于 2021-5-21 15:50 | 显示全部楼层
参考该方法
  1. static void performPeriodicTask( void )
  2. {
  3.      PRINT("performPeriodicTask\r\n");
  4.       advertData[10] = advertData[10]++;
  5.       PRINT("UpdateAdvertisingData\r\n");
  6.       GAP_UpdateAdvertisingData( Peripheral_TaskID, TRUE, sizeof(advertData), advertData );
  7. }
工程见附件
Peripheral.zip (2.44 MB, 下载次数: 12)

评论

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

本版积分规则

7

主题

24

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

7

主题

24

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部