你好!
我参考的是官方例程prox_report
1.请问DA14580如何主动断开连接,调用那个函数?调用default_app_on_disconnect(NULL)似乎不对。
2.请问DA14580和手机APK连接之后,人为关闭手机蓝牙,使手机APK和DA14580异常断开,DA14580一直没收到断开消息,没有广播,无法再次
和DA14580连接,只有断电重启才能连接,请问该如何处理?
关键词:
设备:
你好,
首先,确保prox_reporter工程销有做过任何。以下是功能的实现
1. 外设端主动断开蓝牙
// 1. 在 user_proxr.c 中,创建一个用户层连接成功的回调函数,把链路索引保存下来uint8_t connect_idx;空白user_app_on_connection(uint8_t connection_idx,结构体gapc_connection_req_indconst*param) { connect_idx = connection_idx; default_app_on_connection(connection_idx, param); }// 2. 在 user_proxr.h 中声明空白user_app_on_connection(uint8_t connection_idx,结构体gapc_connection_req_indconst* param);// 3.把连接成成像函到呼叫列表,在user_callback_config.h中:.app_on_connection = user_app_on_connection,// 4. 调用API实现主动断开app_easy_gap_disconnect(connect_idx);
2.系统蓝牙链路开后,会用:
user_app_on_disconnect
2.
你好,性感
我在prox_report做了如下修改:
加加支持arch_printf.
修改广播参数:
user_default_hnd_conf参数修改如下
.adv_scenario = DEF_ADV_FOREVER,.advertise_period = MS_TO_TIMERUNITS(18000),
user_adv_conf参修改下:
.intv_min = 160,.intv_max = 160,
关闭BLE_SPOTA_RECEIVER //////#define BLE_SPOTA_RECEIVER 1
关键词BLE_PROX_REPORTER #DEFINE USE_PUSH_BUTTON 0 /////////#define ble_prox_reporter 1
我需要在连接断开后一直广播,在人为关闭手机蓝牙后,DA14580会调用 user_app_on_disconnect ,然后广播。但是
在更多次打开关的关键字蓝牙后,da14580广播有时断断续续,我如上修改广播数是否正常,还需要修改别的吗?
户外有一击请提供,da14580支持硬延时吗,我用来iic oighers,oigs indieds overnumn:
void sensor_init(void)
{
sensor_reset() //must delay 3ms, next sensor_standby()
ADC_USDELAY(3000);
sensor_standby();//必须延迟2ms,下一个设置sensor_control();
adc_usDelay(2000);
sensor_control1();
adc_usDelay(2000);
sensor_control2();
adc_usDelay(2000);
}
请问我应该如何处理延时?延时时间多,似乎使系统不稳定,请问我该如何处理?sensor_init();应该在何处调用?
如果使用 app_easy_timer ,延时最低单位是10ms,因为延时次数较多,有没有更好的方法?
你好,
你广播跑数量没,如果程序没做任何修改的,不合会,你所说的。出现这个现象,是:
1. 硬件问题,有频偏或者天线没设计好或者晶振的参数不符合datasheet的要求
2. 软件问题,SDK 是一套消息机制,程序里不能有阻塞
sensor init 等硬件的初始化可放 user_on_app_init 回调函数里,可在 user_callback_conifg.h 中找到该接口。
你可以通过(i--)的方面来实现时
你好,请问 user_on_app_init 和system_init先后顺序是那个?测试发现user_on_app_init似乎在system_init前调用。
如果传感器 sensor init 放在user_on_app_init,但是i2c_init放在system_init中的periph_init函数中。
没有先i2c_init,才能传感器init。我us ust_on_app_init似乎是初始析一定是数量,也能初始化器材是吧?
你好,
user_on_app_init 在 system_init 中调用:
if (user_app_main_loop_callbacks.app_on_init !=NULL)
user_app_main_loop_callbacks.app_on_init();
你好,根据你的描述是能够主动断开连接,请问断开连接后,发现ke_state_get (TASK_APP)==APP_CONNECTED,请问这正常吗,断开连接,停止广播ke_state_get(TASK_APP)不应该是APP_CONNECTABLE吗?
不正常。
断开后,正常应该会调用开启广播的函数。然后把 APP_TASK 的状态设置为:
ke_state_set(TASK_APP, APP_CONNECTABLE);
你好
蓝牙主动词的时代,蓝牙断开连接,加上一间标志,使得在进入睡眠前,断开连接,不用使用次数。
问题:现阶段,蓝牙蓝牙,唤醒,传感传感都能正式工作。和手机连接后,蓝牙也能主断开进入模式,但在测试通信距离时钟,
手机和蓝牙大厦10米多时尚,手机和机器备用开放,蓝牙料准备机,项目也添加乐看门,请问为主手机?我应该如何去排查问题。
(远距离断开连接后死机概率大概2/3)
你好,
请问你的问题是:断开蓝牙后,设备会有几率死机;还是:在不同情况下断开(主动断开或拉远距离断开),设备有几率死机?
我比较倾向于前者,因为对于设备固件来说,无论如何断开,固件都会回调 on_disconnect 函数,区别只是断开原因不同。
假设是,在这么大厦率断开放机的情况情况下,原因很可以在你的在你身上的诗程在所在你设备的休眠程梦啊
你好
感谢回复,我会再检讨下。
主动断开没发现问题,死机都是在拉远距离会发生,通过log看调用 on_disconnect 然后死机
由于调用app_easy_gap_disconnect(save_connection_idx);会进入user_on_disconnect,然后开始广播,所以添加disconnect_no_adv_flag标志位控制不广播。
set_device_to_sleep函数中ke_state_get(TASK_APP)两次都是5.这应该是不正常的,需要添加ke_state_set(TASK_APP)函数吗?
你好,
1.使用app_easy_gap_disconnect(save_connection_idx);后,无需再次调用app_easy_gap_advertise_stop();
2. while(delay__time--) 的延时时间时多少?由于系统是基于消息机制的,所以一般情况下,任何消息回调中都不能有明显的阻塞
3.ARCH_BLE_EXT_WAKEUP_ON(); app_accint_wakeup_enable();这两行代码除了除了在断开状态外,还应该放在:
你好,在user_app_adv_undirecrect_complete添加arch_ble_ext_wakeup_on();和app_accInt_wakeup_enable();每次都会死机。
请问arch_ble_ext_wakeup_on();//将BLE核心放在永久性睡眠中。只有外部事件可以唤醒它
是否调用arch_ble_ext_wakeup_on蓝牙内核立马进入睡眠模式?此时如果存在定时回调函数是否旧会出错?
你好,
正常情况下,系统进入休眠之后,还是会因为一些事件定时的被唤醒,比如,蓝牙事件,定时器事件等
调ARCH_BLE_EXT_WAKEUP_ON参数后,系统就只在一种情况下会被唤醒:外部中断。其它的,比如蓝牙事件,定时器事件,都会失效。