CH579M调用更新广播内容函数后BLE就死机的问题
static void performPeriodicTask( void ){
/* 每隔一秒更新广播数据 */
GAP_UpdateAdvertisingData( Peripheral_TaskID, TRUE, strlen(advertData), advertData );
}
performPeriodicTask函数设置为每隔1s调用一次,但只要advertData中的数据被改了,蓝牙就再也无法正常广播信号(蓝牙调试助手无法检测到蓝牙信号),如果使能了HAL_SLEEP=TRUE,程序则进入睡眠模式后再也无法被唤醒。performPeriodicTask函数设置如下就会出现上述问题。
static void performPeriodicTask( void )
{
advertData = 0xaa;
GAP_UpdateAdvertisingData( Peripheral_TaskID, TRUE, strlen(advertData), advertData );
} 这是工程,第一次连接上蓝牙后,从串口确实看到每隔一秒都会触发更新广播内容任务,但当蓝牙调试助手断开蓝牙连接想看看广播内容是否改变时,却直接搜不到蓝牙信号了
参考该方法
static void performPeriodicTask( void )
{
PRINT("performPeriodicTask\r\n");
advertData = advertData++;
PRINT("UpdateAdvertisingData\r\n");
GAP_UpdateAdvertisingData( Peripheral_TaskID, TRUE, sizeof(advertData), advertData );
}
工程见附件
页:
[1]