你好。
我正在做一个项目,主要特点是一个按钮的状态变化检测,非常简单。我需要读取按钮的状态并将这个值发送到手机,这样我就可以知道按钮是否被按下,这正是按钮状态特征所做的。
对话培训材料展示了如何使用控制点和LED状态特性实现自定义服务,所以我想知道是否有一个教程做同样的事情,但使用按钮状态特性。
谢谢提前
你好,迪戈加西亚岛,
在BLE 7支柱示例中有一个特定的示例实现。这是“BLE_SLEEPMODE”。
发布按钮状态比通过已建立的BLE连接更简单。
以“BLE_BAREBONE”为例。在这里,广告数据每隔几秒通过更新一个计数器来更新一次。按钮状态可以是一个用按钮中断回调中的按钮状态更新发布包的中断,并且发布数据被重新传输。
问候
拉
嗨,迪戈加西亚岛,
正如rajucoolsuraj所提到的,你应该检查SDK的ble_app_sleepmode示例。这个例子位于5.0.4\projects\target_apps\ble_examples SDK文件夹路径下。欲了解更多信息,您也可以阅读UM-B-050: DA1458x Software Developers Guide (SDK5)用户手册从我们的支持网站。
谢谢,PM_Dialog
谢谢您的响应,我已经检查了Pillar 5示例,但恐怕文档没有我希望的那样明确。那么,实现按钮功能的步骤是什么呢?,我不是要代码,只是要大致的步骤,提前谢谢
如果您正在使用任何睡眠模式,您应该使用唤醒控制器来检测GPIO中断,原因是在睡眠模式下所有外围设备块都将关闭。请查看SDK的ble_app_sleepmode示例。遍历代码,您将找到app_button_enable()函数。在这个函数中,你可以设置唤醒中断,确定极性并注册将在中断检测时执行的回调函数。因此,您应该定义一个回调函数来读取按钮的状态并将其保存到一个变量中。然后,看看ADC 1的特性,它通过BLE连接将数据通过通知发送到对等设备。您应该考虑按钮按了多长时间,因为通知将在下一个连接间隔内发送。要注意,设备会在广告或连接间隔期间进入睡眠状态。如果您不希望在项目中使用睡眠模式,可以使用gpio.h库中的aps来检测中断并读取按钮的状态。
非常感谢!,这使得it clearer.在我的项目中,我希望使用尽可能少的硬件(越简单越好),这样就可以在两个事件中使用相同的按钮?点击一下就能唤醒芯片,再点击一下就能触发警报。或者我需要使用一个不同的GPIO吗?在这种情况下,实现它的步骤是什么?
是的,您可以在实现中只使用一个按钮。也许您应该使用一个被审查到保留RA的标志,指示唤醒或向对等设备发送警报。但这取决于您和您的代码实现。注意你使用的任何睡眠模式,设备将进入睡眠之间的广告或连接间隔。
你好,迪戈加西亚岛,
在BLE 7支柱示例中有一个特定的示例实现。这是“BLE_SLEEPMODE”。
发布按钮状态比通过已建立的BLE连接更简单。
以“BLE_BAREBONE”为例。在这里,广告数据每隔几秒通过更新一个计数器来更新一次。按钮状态可以是一个用按钮中断回调中的按钮状态更新发布包的中断,并且发布数据被重新传输。
问候
拉
嗨,迪戈加西亚岛,
正如rajucoolsuraj所提到的,你应该检查SDK的ble_app_sleepmode示例。这个例子位于5.0.4\projects\target_apps\ble_examples SDK文件夹路径下。欲了解更多信息,您也可以阅读UM-B-050: DA1458x Software Developers Guide (SDK5)用户手册从我们的支持网站。
谢谢,PM_Dialog
谢谢您的响应,我已经检查了Pillar 5示例,但恐怕文档没有我希望的那样明确。
那么,实现按钮功能的步骤是什么呢?,我不是要代码,只是要大致的步骤,提前谢谢
嗨,迪戈加西亚岛,
如果您正在使用任何睡眠模式,您应该使用唤醒控制器来检测GPIO中断,原因是在睡眠模式下所有外围设备块都将关闭。请查看SDK的ble_app_sleepmode示例。遍历代码,您将找到app_button_enable()函数。在这个函数中,你可以设置唤醒中断,确定极性并注册将在中断检测时执行的回调函数。因此,您应该定义一个回调函数来读取按钮的状态并将其保存到一个变量中。然后,看看ADC 1的特性,它通过BLE连接将数据通过通知发送到对等设备。您应该考虑按钮按了多长时间,因为通知将在下一个连接间隔内发送。要注意,设备会在广告或连接间隔期间进入睡眠状态。如果您不希望在项目中使用睡眠模式,可以使用gpio.h库中的aps来检测中断并读取按钮的状态。
谢谢,PM_Dialog
非常感谢!,这使得it clearer.
在我的项目中,我希望使用尽可能少的硬件(越简单越好),这样就可以在两个事件中使用相同的按钮?点击一下就能唤醒芯片,再点击一下就能触发警报。或者我需要使用一个不同的GPIO吗?
在这种情况下,实现它的步骤是什么?
嗨,迪戈加西亚岛,
是的,您可以在实现中只使用一个按钮。也许您应该使用一个被审查到保留RA的标志,指示唤醒或向对等设备发送警报。但这取决于您和您的代码实现。注意你使用的任何睡眠模式,设备将进入睡眠之间的广告或连接间隔。
谢谢,PM_Dialog