你好
da14585是否有主从示例程序吗?
谢谢
你好,
我不完全确定你在寻找什么,但请看看对话串口服务(DSPS)参考应用程序。DSPS包括2个项目:
sps_host: DA14585充当一个中心
sps_device: DA14585充当外设
如果我误解了你的问题,请尽量澄清它,因为它有点大的一般性。
这是我们的英语论坛,客户可以用英语提问。所以,请将您的问题/评论翻译成英文,或者发布到我们的中文论坛。
https://support.dialog-semiconductor.com/forums/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software-dialog-%E2%80%9Csmartbond%E2%80%9D%E7%B3%BB%E5%88%97%E4%BD%8E%E5%8A%9F%E8%80%97%E8%93%9D%E7%89%99%E2%80%94%E8%BD%AF%E4%BB%B6
谢谢,PM_Dialog
感谢您的回复
主从一体化程序,它既可以是主从机,也可以是从机,并且主从机可以通过状态切换。
大家好
根据蓝牙LE规范,不可能同时扫描(GAP中心角色)和发布(GAP外围角色)。因为您正在使用DA14585,所以您可以执行从外设到中心GAP配置的角色切换,反之亦然。这可以通过将角色设置为GAP_ROLE_ALL来实现,这样您就可以发布或扫描。但不可能同时做到这两点。
让我们以SDK的ble_app_peripheral示例为起点。默认情况下,DA14585被配置为外设,因此它开始发布(无定向)。您可以使用app_easy_timer(),在它到期时,您应该停止发布。一旦它停止,您就可以将设备配置为中心并开始扫描。您可以等待扫描完成(如果您在GAP_GEN_DISCOVERY中进行扫描),或者设置一个额外的计时器并取消扫描过程。当扫描完成后,也许你可以重新开始发布广告。请检查以下步骤,以便进行角色转换。
—在user_config.h文件中将user_gapm_conf结构的.role成员修改为GAP_ROLE_ALL。
—创建一个user_scan_start()函数来开始扫描:
struct gapm_start_scan_cmd* cmd = KE_MSG_ALLOC(gapm_start_scan_cmd, TASK_GAPM, TASK_APP, gapm_start_scan_cmd);cmd - > op。代码= GAPM_SCAN_ACTIVE;cmd - > op。addr_src = GAPM_STATIC_ADDR;cmd - >间隔= 16384;cmd窗口- > = 16384;cmd - >模式= GAP_GEN_DISCOVERY;cmd - > filt_policy = SCAN_ALLOW_ADV_ALL;cmd - > filter_duplic = SCAN_FILT_DUPLIC_EN; // Send the message ke_msg_send(cmd); // We are now connectable ke_state_set(TASK_APP, APP_CONNECTABLE); }
-在user_app_adv_start()函数中,有一个计时器启动,以在大约30秒后停止广告,所以我们将使用它来停止广告。
-所以在回调定时器adv_data_update_timer_cb()时,调用app_easy_gap_advertise_stop()函数,而不是更新广告字符串。
—在user_app_adv_undirect_complete()函数中调用user_scan_start()函数,以便当设备停止发布时开始扫描。
-为了停止扫描,一个额外的计时器不会被用来取消命令,但是扫描的超时时间会被使用。
-一旦扫描结束就开始发布,创建一个函数user_on_scanning_completed(),并从该函数调用user_app_adv_start();
感谢您的回复。我试试这个方法
你好,
我不完全确定你在寻找什么,但请看看对话串口服务(DSPS)参考应用程序。DSPS包括2个项目:
sps_host: DA14585充当一个中心
sps_device: DA14585充当外设
如果我误解了你的问题,请尽量澄清它,因为它有点大的一般性。
这是我们的英语论坛,客户可以用英语提问。所以,请将您的问题/评论翻译成英文,或者发布到我们的中文论坛。
https://support.dialog-semiconductor.com/forums/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software-dialog-%E2%80%9Csmartbond%E2%80%9D%E7%B3%BB%E5%88%97%E4%BD%8E%E5%8A%9F%E8%80%97%E8%93%9D%E7%89%99%E2%80%94%E8%BD%AF%E4%BB%B6
谢谢,PM_Dialog
感谢您的回复
主从一体化程序,它既可以是主从机,也可以是从机,并且主从机可以通过状态切换。
大家好
根据蓝牙LE规范,不可能同时扫描(GAP中心角色)和发布(GAP外围角色)。因为您正在使用DA14585,所以您可以执行从外设到中心GAP配置的角色切换,反之亦然。这可以通过将角色设置为GAP_ROLE_ALL来实现,这样您就可以发布或扫描。但不可能同时做到这两点。
让我们以SDK的ble_app_peripheral示例为起点。默认情况下,DA14585被配置为外设,因此它开始发布(无定向)。您可以使用app_easy_timer(),在它到期时,您应该停止发布。一旦它停止,您就可以将设备配置为中心并开始扫描。您可以等待扫描完成(如果您在GAP_GEN_DISCOVERY中进行扫描),或者设置一个额外的计时器并取消扫描过程。当扫描完成后,也许你可以重新开始发布广告。请检查以下步骤,以便进行角色转换。
—在user_config.h文件中将user_gapm_conf结构的.role成员修改为GAP_ROLE_ALL。
—创建一个user_scan_start()函数来开始扫描:
-在user_app_adv_start()函数中,有一个计时器启动,以在大约30秒后停止广告,所以我们将使用它来停止广告。
-所以在回调定时器adv_data_update_timer_cb()时,调用app_easy_gap_advertise_stop()函数,而不是更新广告字符串。
—在user_app_adv_undirect_complete()函数中调用user_scan_start()函数,以便当设备停止发布时开始扫描。
-为了停止扫描,一个额外的计时器不会被用来取消命令,但是扫描的超时时间会被使用。
-一旦扫描结束就开始发布,创建一个函数user_on_scanning_completed(),并从该函数调用user_app_adv_start();
谢谢,PM_Dialog
感谢您的回复。我试试这个方法