14个帖子/ 0新
最后一篇
Lewuyouc.
离线
最后一次露面:1年7个月前
加入:2016-07-18 01:38
蓝牙断开连接

你好!
我参考的是官方向程序prox_report

1.请问da14580如何驾驶断开连接,调用那个函数?默认_app_on_disconnect(null)似乎不对。

2.请问da14580和手机apk连接之后,人为关键字手,使使机apk和da14580异常断开,da14580一盏没收到开,没有广播,无法再次
和da14580连接,只有灯泡重启才能,请问该如何处定理?

关键词:
设备:
cyibin.
离线
最后一次露面:6个月1天前
职员
加入:2017-12-14 02:48
你好,

你好,

首先,确保prox_reporter工程销有做过任何。以下是功能的实现

1.外面运动断开

// 1.在user_proxr.c中,创建一圈用词连接成功的数,把链路索引保存下来uint8_t connect_idx;空白user_app_on_connection(uint8_t connection_idx,塑造gapc_connection_req_ind.const* 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_ind.const* 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。

Lewuyouc.
离线
最后一次露面:1年7个月前
加入:2016-07-18 01:38
你好,性感

你好,性感

我在prox_report做做了如修改:

加加支持arch_printf.
修改修改数:
user_default_hnd_conf参修改如下
。adv_scenario = def_add_forever,.advertise_period = ms_to_timerunits(18000),
user_adv_conf参修改下:
.intv_min = 160,.intv_max = 160,
关键词BLE_SPOTA_RECEIVER /////#定义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()//必须延迟3ms,下一个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,因为时钟数量更多,有没有更好的方法?

cyibin.
离线
最后一次露面:6个月1天前
职员
加入:2017-12-14 02:48
你好,

你好,

你广播跑数量没,如果程序没做任何修改的,不合会,你所说的。出现这个现象,是:

1.硬件硬件,有频偏或者天线没设计好或者晶振的数不合于数据表的要求

2.软件问题,sdk是一击机械,程序里没有阻塞

传感器init等硬件的初始化可放ust_on_app_init遇里,可在user_callback_conifg.h中找到该接口。

你可以通过(i--)的方面来实现时

Lewuyouc.
离线
最后一次露面:1年7个月前
加入:2016-07-18 01:38
你好,请问user_on_app_init

你好,请问user_on_app_init和system_init先后顺序那个?测试发布user_on_app_init似乎在system_init使用。

传感器init放在user_on_app_init,但i2c_init放在system_init中的periph_init infer中。

没有先i2c_init,才能传感器init。我us ust_on_app_init似乎是初始析一定是数量,也能初始化器材是吧?

cyibin.
离线
最后一次露面:6个月1天前
职员
加入:2017-12-14 02:48
你好,

你好,

user_on_app_init在system_init中间用品:

if(user_app_main_loop_callbacks.app_on_init!= null)
user_app_main_loop_callbacks.app_on_init();

Lewuyouc.
离线
最后一次露面:1年7个月前
加入:2016-07-18 01:38
你好,你的描述是能够主断开连接,请问断开着

你好,你的不法是连接,请问断开着后,发表ke_state_get(task_app)== app_connected,请问这正式吗,断开连接,停止广播ke_state_get(task_app)不知道app_conectable吗?

cyibin.
离线
最后一次露面:6个月1天前
职员
加入:2017-12-14 02:48
不正义。

不正义。

断开后,正常应该会使用开启广播的数。然后然后app_task的状态设置为:

ke_state_set(task_app,app_connectable);

Lewuyouc.
离线
最后一次露面:1年7个月前
加入:2016-07-18 01:38
你好

你好

蓝牙主动词的时代,蓝牙断开连接,加上一间标志,使得在进入睡眠前,断开连接,不用使用次数。

问题:现阶段,蓝牙蓝牙,唤醒,传感传感都能正式工作。和手机连接后,蓝牙也能主断开进入模式,但在测试通信距离时钟,

手机和蓝牙大厦10米多时尚,手机和机器备用开放,蓝牙料准备机,项目也添加乐看门,请问为主手机?我应该如何去排查问题。

(远距离断开连接连接连接死死死死死死大约2/3)

cyibin.
离线
最后一次露面:6个月1天前
职员
加入:2017-12-14 02:48
你好,

你好,

请问你的事是:断开蓝牙后,设备会有几率手机;还是:在不错情况下打开(血液移动开关距离距离开),设备有几率手机?

我比较倾向于前者,因为对于设备固件来,无论如何无论如何开,固件都会回调on_disconnect anders,区别只是打开原因不成。

假设是,在这么大厦率断开放机的情况情况下,原因很可以在你的在你身上的诗程在所在你设备的休眠程梦啊

// 1.制备上电,依次依次行硬件锰矿化,协议协议化,内内初矿化,蓝牙蓝牙初始核过程,上述初始始过程,上游完成之道,回调:void default_app_on_db_init_complete(void){execute_default_operation_void(default_operation_adv);//完成初始化工作,发出广播,若想上电不发电广播,则将1点中的广播语句屏蔽可} // 2.假设别是通行一象按来使系统在“休眠”和“唤醒”之间的,并且休眠时,蓝牙不行,唤醒时,蓝牙有广播。静音静音睡眠睡眠_en = true;静态bool需要_enter_sleep = false;静态void app_button_press_cb(void){if(getbits16(sys_stat_reg,per_is_down)){periph_init();}如果(!Sleep_en)//当前不在休眠休眠,需要进入休眠{cercer_enter_sleep = true;if(user_connected_idx!= gap_invalid_conidx){app_easy_gap_disconnect(user_connected_idx);} else {app_easy_gap_advertise_stop();}} else //当前属于休眠模式,需要退出休眠{cercer_enter_sleep = false;sleep_en = false;user_app_adv_start(); } } void user_app_connection(uint8_t connection_idx, struct gapc_connection_req_ind const *param) { if (app_env[connection_idx].conidx != GAP_INVALID_CONIDX) { user_connected_idx = connection_idx; } } void user_app_disconnect(struct gapc_disconnect_ind const *param) { uint8_t state = ke_state_get(TASK_APP); if ((state == APP_SECURITY) || (state == APP_CONNECTED) || (state == APP_PARAM_UPD)) { if (need_enter_sleep) { need_enter_sleep = false; sleep_en = true; } else { sleep_en = false; user_app_adv_start(); } } else { // We are not in a Connected State ASSERT_ERR(0); } } void user_app_adv_undirect_complete(const uint8_t status) { if (status == GAP_ERR_CANCELED) { sleep_en = true; need_enter_sleep = false; } }

Lewuyouc.
离线
最后一次露面:1年7个月前
加入:2016-07-18 01:38
你好

你好

感谢回复,我会再检讨下。

动感呼吸开发问题,手机都是在拉远展会进出生,通讯登录看调用ON_DISCONNECT然后手机

void user_on_connection(uint8_t connection_idx,struct gapc_connection_req_ind const * param){arch_printf(“user_on_connection \ r \ n”);save_connection_idx = connection_idx;default_app_on_connection(connection_idx,param);} void user_on_disconnect(struct gapc_disconnect_ind const * param){if(disconnect_no_add_flag == 0){default_app_on_disconnect(param);} ARCH_PRINTF(“user_on_disconnect \ r \ n”);void set_device_to_sleep(void){uint8_t delay_time = 0x80;ARCH_PRINTF(“set_device_to_sleep \ r \ n”);if(alg_timer_hnd!= eyle_timer_invalid_timer){app_easy_timer_cancel(alp_timer_hnd);alg_timer_hnd = easy_timer_invalid_timer;}如果(key_timer_hnd!= easy_timer_invalid_timer){app_easy_timer_cancel(key_timer_hnd); key_timer_hnd = EASY_TIMER_INVALID_TIMER; } if(ke_state_get(TASK_APP)==APP_CONNECTED){ disconnect_no_adv_flag = 1; app_easy_gap_disconnect(save_connection_idx); arch_printf("111ke_state_get(TASK_APP)=%d\r\n",ke_state_get(TASK_APP)); } GPIO_SetInactive(GPIO_LED1_GREEN_PORT,GPIO_LED1_GREEN_PIN); GPIO_SetInactive(GPIO_LED2_RED_PORT,GPIO_LED2_RED_PIN); GPIO_SetInactive(GPIO_LED3_YELLOW_PORT,GPIO_LED3_YELLOW_PIN); while(delay_time--); app_easy_gap_advertise_stop(); arch_printf("222ke_state_get(TASK_APP)=%d\r\n",ke_state_get(TASK_APP)); hsppad042a_standby(); hsactd_set_to_sniff(); arch_ble_ext_wakeup_on(); i2c_release(); app_accInt_wakeup_enable(); arch_set_extended_sleep(); }

由于由于用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)函数吗?

cyibin.
离线
最后一次露面:6个月1天前
职员
加入:2017-12-14 02:48
你好,

你好,

1.使用app_easy_gap_disconnect(save_connection_idx);后,无需无需使用app_easy_gap_advertise_stop();

虽然(Delay_Time--)的时钟时间时机?由于系统是基于机器仪的,所以一般性情况下,任何消息回调中间不出明显的阻塞

3.ARCH_BLE_EXT_WAKEUP_ON(); app_accint_wakeup_enable();这两行代码除了除了在断开状态外,还应该放在:

void user_app_add_undirect_complete(const uint8_t status){if(status == gap_err_canceled){sleep_en = true;creak_enter_sleep = false;ARCH_BLE_EXT_WAKEUP_ON();//设置一个标志标志,使使只能通讯外部gpio信号唤醒app_accint_wakeup_enable();//使能唤醒源}}

Lewuyouc.
离线
最后一次露面:1年7个月前
加入:2016-07-18 01:38
你好,在user_app_adv_undirecrect

你好,在user_app_adv_undirect_complete添加arch_ble_ext_wakeup_on();和app_accint_wakeup_enable();每次都会。

请问arch_ble_ext_wakeup_on();//将BLE核心放在永久性睡眠中。只有外部事件可以唤醒它

是使用ARCH_BLE_EXT_WAKEUP_ON蓝牙内核立马进入睡眠模式?当时如果在当时是人们

cyibin.
离线
最后一次露面:6个月1天前
职员
加入:2017-12-14 02:48
你好,

你好,

正常情况下,系统进入休眠之后,还会因为一般来的时代的被,比如,蓝牙事件,定时代

ARCH_BLE_EXT_WAKEUP_ON参数后,系统就只在一起下面会:外部中间。其它的,比如蓝牙事件,定时代,都会失效。