嗨
因此,我已经用ble_central示例项目构建并编程了我的DA14681开发工具包,但在我的终端上什么也没有显示,当我去扫描设备时,什么也没有显示。此外,当我打开我的DA14583物联网适配器时,终端上仍然没有显示任何东西。我的设置是:Serial, 115200, No handshake, 8位,1停止位,无奇偶校验控制,以及较低的COM端口(在这里是COM3)。我做错什么了吗?我希望能够将物联网加密狗发送的数据记录到一个文件中。
嗨sjdorsay,
ble_central示例有一个默认的bd地址,你可以在ble_config.h文件的defaultBLE_STATIC_ADDRESS中修改这个默认的bd地址,地址的现有值是0x80 0xEA 0xCA 0x00 0x00 0x01。如果中心没有找到这个地址,它将不会连接到它。关于你想从物联网日志数据仅仅是意识到你需要实现一个合适的发现从中央,然后你将不得不集物联网的android应用程序的配置集为了物联网开始发送数据,也需要额外实现中央开始记录这些数据。
由于MT_dialog
我已经将默认地址更改为笔记本的BT地址,仍然没有连接。我开始觉得它可能不支持智能蓝牙。我是否只需要将中心的默认地址设置为物联网加密狗的默认地址?我对使用API和蓝牙有点陌生,所以我可能会问一些看起来很明显的问题。是否可以取消对连接的要求;是否可以将物联网设置为广播,da14681设置为观察模式,这样我就不用处理认证了?
我不太明白你想要做什么(一开始我以为你已经通过串口将68x连接到笔记本电脑上了),或者你希望68x在中心模式下做什么。你提到的笔记本电脑,我认为只是扫描(作为中心仅起作用)而不是广告,ble_central fw做了完全相同的,所以这些设备没有机会看到彼此,因为他们都在扫描,即使笔记本电脑不仅在扫描,而且还通过改变地址来做广告,但这并不意味着笔记本电脑会用它的公共地址做广告,就我目前所知,大多数设备使用的是随机地址,而不是它们的公共地址。通过使用物联网和改变默认地址,你应该能够连接68x中央处理器,但由于中央处理器是你只能连接,不能更多。是的,它可以删除连接要求,而不是调用ble_gap_connect()在ble_central_task中,你应该调用ble_gap_scan_start()来开始扫描,而不是为了连接而扫描特定的地址。连接仅由主机指示,而不是外围设备,所以你不必改变物联网上的任何东西,只要没有人连接物联网,设备将继续广告。
哦,我需要一种方法来看看蓝牙模块是否在传输,所以我尝试通过串口连接我的笔记本电脑,但我想我的理论是错误的。
所以我改变了
ble_gap_connect (addr, cp);
来
ble_scan_start (GAP_SCAN_PASSIVE, GAP_SCAN_GEN_DISC_MODE, BLE_SCAN_INTERVAL_FROM_MS(0.625), BLE_SCAN_WINDOW_FROM_MS(20), false, false);
在ble_central_task文件中,但是事件处理程序的printf语句仍然没有显示在我的终端上。有什么问题吗?目前我已经将终端设置为Serial, 115200波特,8位数据位,1位停止位,无握手,以及设备管理器中显示的下COM端口(即COM6和COM7中的COM6)。它似乎正在连接,因为当我打开SmartBond应用程序时,狗狗就不会再出现了,直到我重置它。
ble_central的功能不是跟踪广告消息,并将其打印在终端上,默认功能是连接到具有特定bd地址的外围设备,并打印与所连接的外围设备有关的一些信息。如果你只是将ble_gap_connect()改为ble_gap_scan_start(),它将开始扫描,但这并不意味着将开始打印出所有可用的设备,可以通过空气扫描。为了做到这一点你必须设置一个当你的设备发现一个广告字符串打印函数,这意味着你将不得不抓住BLE_EVT_GAP_ADV_REPORT消息(消息祝福发送当一个广告字符串被捕获在扫描过程中),然后打印你想要的信息。
我在每个处理程序中看到了printf语句,所以我认为它会输出一些我不直接关心的信息。听起来我需要做的不仅仅是键入printf(“whatever I want”);。当捕获到报告消息时,我应该遵循什么程序在终端上打印消息?
谢谢你!
斯蒂芬。
我可以给你发邮件吗?那样会更快吗?
我建议仔细看看这些例子,因为它们是相当多的实现打印功能的项目,花点时间研究代码。当消息被main_task的应用程序(在情况下中央ble_central_task)开关函数将处理它并调用您应该创建的自定义函数,也有hdr参数等信息的消息刚,每个被调用的函数都在相应的结构中强制转换这个参数。在扫描的情况下,你将不得不在ble_evt_gap_adv_report_t结构体中cast hdr,在那里你将有报告的设备。我也很抱歉,但邮寄是不可能的。
嗨sjdorsay,
ble_central示例有一个默认的bd地址,你可以在ble_config.h文件的defaultBLE_STATIC_ADDRESS中修改这个默认的bd地址,地址的现有值是0x80 0xEA 0xCA 0x00 0x00 0x01。如果中心没有找到这个地址,它将不会连接到它。关于你想从物联网日志数据仅仅是意识到你需要实现一个合适的发现从中央,然后你将不得不集物联网的android应用程序的配置集为了物联网开始发送数据,也需要额外实现中央开始记录这些数据。
由于MT_dialog
我已经将默认地址更改为笔记本的BT地址,仍然没有连接。我开始觉得它可能不支持智能蓝牙。我是否只需要将中心的默认地址设置为物联网加密狗的默认地址?我对使用API和蓝牙有点陌生,所以我可能会问一些看起来很明显的问题。是否可以取消对连接的要求;是否可以将物联网设置为广播,da14681设置为观察模式,这样我就不用处理认证了?
嗨sjdorsay,
我不太明白你想要做什么(一开始我以为你已经通过串口将68x连接到笔记本电脑上了),或者你希望68x在中心模式下做什么。你提到的笔记本电脑,我认为只是扫描(作为中心仅起作用)而不是广告,ble_central fw做了完全相同的,所以这些设备没有机会看到彼此,因为他们都在扫描,即使笔记本电脑不仅在扫描,而且还通过改变地址来做广告,但这并不意味着笔记本电脑会用它的公共地址做广告,就我目前所知,大多数设备使用的是随机地址,而不是它们的公共地址。通过使用物联网和改变默认地址,你应该能够连接68x中央处理器,但由于中央处理器是你只能连接,不能更多。是的,它可以删除连接要求,而不是调用ble_gap_connect()在ble_central_task中,你应该调用ble_gap_scan_start()来开始扫描,而不是为了连接而扫描特定的地址。连接仅由主机指示,而不是外围设备,所以你不必改变物联网上的任何东西,只要没有人连接物联网,设备将继续广告。
由于MT_dialog
哦,我需要一种方法来看看蓝牙模块是否在传输,所以我尝试通过串口连接我的笔记本电脑,但我想我的理论是错误的。
所以我改变了
ble_gap_connect (addr, cp);
来
ble_scan_start (GAP_SCAN_PASSIVE, GAP_SCAN_GEN_DISC_MODE, BLE_SCAN_INTERVAL_FROM_MS(0.625), BLE_SCAN_WINDOW_FROM_MS(20), false, false);
在ble_central_task文件中,但是事件处理程序的printf语句仍然没有显示在我的终端上。有什么问题吗?目前我已经将终端设置为Serial, 115200波特,8位数据位,1位停止位,无握手,以及设备管理器中显示的下COM端口(即COM6和COM7中的COM6)。它似乎正在连接,因为当我打开SmartBond应用程序时,狗狗就不会再出现了,直到我重置它。
嗨sjdorsay,
ble_central的功能不是跟踪广告消息,并将其打印在终端上,默认功能是连接到具有特定bd地址的外围设备,并打印与所连接的外围设备有关的一些信息。如果你只是将ble_gap_connect()改为ble_gap_scan_start(),它将开始扫描,但这并不意味着将开始打印出所有可用的设备,可以通过空气扫描。为了做到这一点你必须设置一个当你的设备发现一个广告字符串打印函数,这意味着你将不得不抓住BLE_EVT_GAP_ADV_REPORT消息(消息祝福发送当一个广告字符串被捕获在扫描过程中),然后打印你想要的信息。
由于MT_dialog
我在每个处理程序中看到了printf语句,所以我认为它会输出一些我不直接关心的信息。听起来我需要做的不仅仅是键入printf(“whatever I want”);。当捕获到报告消息时,我应该遵循什么程序在终端上打印消息?
谢谢你!
斯蒂芬。
我可以给你发邮件吗?那样会更快吗?
嗨sjdorsay,
我建议仔细看看这些例子,因为它们是相当多的实现打印功能的项目,花点时间研究代码。当消息被main_task的应用程序(在情况下中央ble_central_task)开关函数将处理它并调用您应该创建的自定义函数,也有hdr参数等信息的消息刚,每个被调用的函数都在相应的结构中强制转换这个参数。在扫描的情况下,你将不得不在ble_evt_gap_adv_report_t结构体中cast hdr,在那里你将有报告的设备。我也很抱歉,但邮寄是不可能的。
由于MT_dialog