⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在迁移到新的论坛平台,它将提供更好的功能,并包含在主要的对话网站中。所有员额和帐户都已迁移。我们现在只接受新论坛上的流量-请发布任何新的线程在//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标签。
8个帖子/ 0个新
最后发表
MarkDsylva_2277
离线
最后看到:三个月三周前
加入:2019-06-19 04:20
停止广告

嗨PMDialog,

我正在把“ble_app_noncon”的例子。misc”文件夹中。广告数据被填充到广告字符串中。我正在使用BLE扫描应用程序来查看我手机上的字符串。当我试图通过打电话来阻止广告时app_easy_gap_advertise_stop ()函数,广告停止。我正在运行调试会话,程序停在ASSERT_ERROR (0);

case GAPM_CANCEL: {if(param->status != GAP_ERR_NO_ERROR) {ASSERT_ERROR(0);//意外错误}if (app_process_catch_rest_cb != NULL) {app_process_catch_rest_cb(msgid, param, dest_id, src_id);}} break;

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

问候,

马克

设备:
PM_Dialog
离线
最后看到:3天10小时前
工作人员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

不确定您使用的是哪个SDK,但我们强烈建议您使用最新的SDK6版本6.0.12。此版本通常用于DA14531和DA14585/586产品。亚博电竞菠菜

请注意,如果你正在开始一个新的设计,我们强烈建议从DA14531和我们最新的SDK6.0.12开始,因为它得到了更多的改进。我们有很多代码示例,改进的文档等

//www.xmece.com/亚博电竞菠菜products/connectivity/bluetooth-low..。

这个功能已经在SDK的ble_app_sleepmode示例中实现了。该应用程序增加了睡眠模式API的使用,利用两种可用的睡眠模式-扩展睡眠模式(带或不带OTP复制)和OTP复制。

具体来说,设备默认启动无定向广告。在user_app_adv_start()中设置了一个“app easy”定时器。在预定义的时间(APP_ADV_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_advertise_stop()向堆栈发送GAPM_CANCEL_CMD消息,以停止不可连接的广告。然后,触发user_app_adv_nonconn_complete()回调函数。如果广告被取消(GAP_ERR_CANCELED),则更新广告数据并重新开始广告。在您的情况下,您应该根据您的应用程序需求修改此功能-将设备置于休眠模式。

谢谢,PM_Dialog

MarkDsylva_2277
离线
最后看到:三个月三周前
加入:2019-06-19 04:20

嗨PM_Dialog,

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

我还有一个要求。我必须启用唤醒时,我得到一个按钮中断。我已经在perid_init()中初始化了uart_initialize()函数。在按钮中断回调,我调用arch_resume_from_sleep()函数,这唤醒设备,但设备被困在uart_receive(UART1, (uint8_t *)缓冲区,4,UART_OP_BLOCKING)函数。外部处理器通过UART发送数据,我在示波器上确认了。

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

问候,

马克

PM_Dialog
离线
最后看到:3天10小时前
工作人员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

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

在每次唤醒时执行perid_init()。BLE_WAKEUP_LP_Handler是系统唤醒时触发的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
离线
最后看到:三个月三周前
加入:2019-06-19 04:20

嗨PM_Dialog,

我照你的建议做了。我在app_wakeup_cb()函数上初始化了uart,我在那里执行uart读取,但它在uart读取函数()中卡住了。

为了从睡眠中中断对话芯片,我使用外部处理器的gpio引脚。中断后,外部处理器在7ms后通过UART发送1个字节。我在示波器上证实了这一点。芯片使用回调函数从睡眠中正常唤醒,但它在读取时卡住了。是抗逆转录病毒疗法的问题还是别的什么?

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

问候,

马克

PM_Dialog
离线
最后看到:3天10小时前
工作人员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

很抱歉我回复晚了。你能分享一下艺术阅读功能吗?您是否启用或禁用了WDOG ?

谢谢,PM_Dialog

MarkDsylva_2277
离线
最后看到:三个月三周前
加入:2019-06-19 04:20
嗨PM_Dialog,

嗨PM_Dialog,

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

问候,

马克

PM_Dialog
离线
最后看到:3天10小时前
工作人员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

你能启用WDOG吗?可能固件卡住了…WDOG可用于检测由软件失控引起的意外执行序列,并可生成完整的系统复位(WDOG复位)或不可屏蔽中断(NMI)。

谢谢,PM_Dialog