⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
8个帖子/ 0新
最后一篇
markdsylva_2277.
离线
最后看到:3周1日前
加入:2019-06-19 04:20
停止广告

嗨pmdialog,

我正在骚扰“ble_app_noncon”在'misc' 文件夹。广告数据填充在广告字符串中。我正在使用BLE Scanner应用程序来查看我的手机上的字符串。当我试图通过致电停止广告时'app_easy_gap_advertise_stop()'功能广告停止。我正在运行一个调试会话,程序停止assert_error(0);

案例GAPM_CANCEL:{if(param-> status!= gap_err_no_error){assert_error(0);//意外错误}如果(app_process_catch_rest_cb!= null){app_process_catch_rest_cb(msgs,param,dest_id,src_id);} } 休息;

我正试图停止广告,进入睡眠模式。请指导。

问候,

标记

设备:
PM_Dialog
离线
最后看到:2天5小时前
职员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

不确定您使用哪个SDK,但我们强烈建议使用我们最新的SDK6 6.0.12。此版本对于DA14531和DA14585 / 586产品很常见。雷电竞官网登录

请注意,如果您正在启动新设计,我们强烈建议使用DA14531和我们最新的SDK6.0.12开始,因为它更加提高。我们有很多代码示例,改进了文档等

//www.wsdof.com/雷电竞官网登录products/connectivity/bluetooth-low..。

此功能已经在SDK的BLE_APP_SLEEPMODE示例中实现。该应用程序增加了使用睡眠模式API,使用两种可用的睡眠模式 - 扩展睡眠模式(带或不带OTP拷贝)与OTP副本。

具体地,默认情况下,该设备启动了无向广告。在user_app_adv_start()中设置了“App Easy”定时器。在预定义的时间(app_add_data_update_to)之后,定时器到期并触发adv_data_update_timer_cb()回调函数。此函数调用app_easy_gap_advertise_stop(),因此系统停止广告,并且执行user_App_Adv_Undirect_Complete()。此功能将芯片放入睡眠模式。只有外部(GPIO)唤醒活动可以唤醒处理器

关于BLE_APP_NONCONN,APP_EASY_GAP_ADVERTES_STOP()将GAPM_CANCEL_CMD消息发送到堆栈以停止不可连接的广告。然后,触发user_app_adv_nonconn_complete()回调函数。如果广告被取消(GAP_ERR_CANCELED),则更新广告数据并再次启动广告。在您的情况下,您应该根据应用程序要求修改此功能 - 将设备放入睡眠模式。

谢谢,PM_Dialog

markdsylva_2277.
离线
最后看到:3周1日前
加入:2019-06-19 04:20

嗨pm_dialog,

感谢您的回复。正如你建议的那样,我可以停止广告,让这个设备进入睡眠状态。我用万用表测量了电流消耗,证实了这一点。我还添加了一个唤醒按钮中断,设备唤醒并开始传输数据。现在一切正常。

我还有一个要求。我必须启用uart在唤醒时,我得到一个按钮中断。我已经初始化了uart_initialize()函数在外围的init()。在按钮中断回调我调用arch_resume_from_sleep()函数,这将唤醒设备,但设备被卡在uart_receive(UART1, (uint8_t *)buffer, 4, UART_OP_BLOCKING)函数。外部处理器正在通过UART发送数据,我在范围上确认了。

我只想唤醒并从UART读取9字节的数据,并将这些数据传输到广告字符串。我被困在UART读取设备唤醒。

问候,

标记

PM_Dialog
离线
最后看到:2天5小时前
职员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

很高兴您能够启动/停止广告并将设备放入睡眠模式。如果您发现答案有用,请将其标记为其他论坛用户的“接受”。

每个唤醒都执行periph_init()。BLE_WAKEUP_LP_HANDLLL是在系统唤醒时触发的ISR。然后,CPU将从WFI恢复。请在Arch_main.c文件中检查main()。WFI后,Arch_Resume_from_sleep()。在睡眠模式下,包括UART的所有外围设备块都关闭。我的建议是在App_wakeup_cb()函数中初始化UART。要执行UART读取,请参阅SDK6.0.12的UART示例,然后选中UART_REGISTER_RX_CB()。此示例位于Projects \ target_apps \ peripheral_examples \ UART SDK路径下。您还可以使用UART_READ_BUFFER()来指定字节数。

谢谢,PM_Dialog

markdsylva_2277.
离线
最后看到:3周1日前
加入:2019-06-19 04:20

嗨pm_dialog,

我建议的那样。我在app_wakeup_cb()函数上初始化UART,我正在在那里执行一个UART,但它会陷入UART读取功能()。

从睡眠中打断对话框芯片,我正在使用外部处理器的GPIO引脚。中断后,外部处理器在7ms后通过UART发送1个字节。我在示波器中确认了这一点。芯片使用回调函数正确地从睡眠中唤醒,但它被粘在UART读取。是UART还是其他东西的问题?

注意:为了确认外部处理器是否正确发送数据,我尝试了SDK外设示例文件夹中的一个uart示例。它接收数据的正确性。问题是只有当我从睡眠中醒来时才使用UART。

问候,

标记

PM_Dialog
离线
最后看到:2天5小时前
职员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

为我迟到的回复道歉。你能分享UART阅读功能吗?您是否启用了WDOG或禁用?

谢谢,PM_Dialog

markdsylva_2277.
离线
最后看到:3周1日前
加入:2019-06-19 04:20
嗨pm_dialog,

嗨pm_dialog,

是的,我已经禁用了看门狗定时器。

问候,

标记

PM_Dialog
离线
最后看到:2天5小时前
职员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

请您启用WDOG吗?可能是固件陷入困境.. WDOG可用于检测由遥控的软件引起的意外的执行序列,可以生成完整的系统复位(WDOG复位)或不可屏蔽的中断(NMI)。

谢谢,PM_Dialog