你好,
我不知道如何使用DA14580和安卓手机通过蓝牙发送或接收数据。我一直在ble_examples目录中查找示例。更具体地说,我一直试图让ble_app_sleepmode工作。我需要一个关于如何发送和接收字节(或任何其他类型的数据)的最简单的示例。
到目前为止,唯一值得注意的尝试是在“app_on_connection”回调中调用以下函数。
空白sensor_int_send_ble ()
{
struct custs1_val_ntf_req* req = KE_MSG_ALLOC_DYN(custs1_val_ntf_req,
TASK_CUSTS1,
TASK_APP,
custs1_val_ntf_req,
DEF_CUST1_ADC_VAL_1_CHAR_LEN);
/ /值
静态uint16_t样本;
样本= 42;
Req ->conhdl = app_env->conhdl;
req->handle = CUST1_IDX_ADC_VAL_1_VAL;
req->length = DEF_CUST1_ADC_VAL_1_CHAR_LEN;
memcpy(req->值,&sample, DEF_CUST1_ADC_VAL_1_CHAR_LEN);
ke_msg_send(要求的);
}
但当我将da14580与BLE扫描仪连接时,这没有提供任何结果。
除此之外,我如何配置睡眠?据我所知,睡眠“深度”可以用一个简单的宏来选择。但是它什么时候睡觉或醒来呢?
提前谢谢你。
设备:
嗨toddgun,
关于发送和接收数据通过蓝牙,也许app_ble_sleepmode例子不是最好的开始,这个例子实现了一个自定义服务,你可以添加一些代码发送数据,但当前实现有限只派出了一个按钮的状态,所以ble_app_sleepmode例子你只能发送到你的手机只有SW3开关的状态,它是否被按下。如果你想要一个例子来发送数据,我会推荐ble_app_peripheral的例子,该项目通过内核计时器发送一些虚拟数据到手机。为了启用它,你所要做的就是向第一个特征(名为控制点)发送一个0x01,然后在ADC值1特征处启用通知(从电话应用程序中阅读用户描述特征,以找出哪个特征具有什么功能)。只要你启用通知,你就会看到ADC值1特征被虚拟值更新。通知的发送是由app_adcval1_timer_cb_handler()函数触发的(当timer - timer_used = app_easy_timer(APP_PERIPH.....)时执行的函数-已经过去)。分配命令CUSTS1_VAL_NTF_REQ,正确地填充要发送的配置和数据,并将其转发到堆栈,然后设置一个新的计时器以发送下一个通知。
关于睡眠,这是配置的strutcure app_default_sleep_mode,取决于设备的价值将下降在no_sleep, extended_sleep, deep_sleep,设备将多长时间睡眠是自定义的设备,这意味着,只要有一个upcomming BLE事件设备将程序为了叫醒它自我服务,事件是一个广告事件连接的事件,一个计时器事件和外部中断,如果没有事件发生,设备将继续休眠。当然,您可以在运行时通过arch_set_extended_sleep(), arch_set_deep_sleep()或arch_disable_sleep()动态更改睡眠模式。
由于MT_dialog