你好,
我无法弄清楚如何使用DA14580和Android手机通过蓝牙发送或接收数据。我一直在通过BLE_EXAMPLES目录中查看示例。更具体地说,我一直在尝试让BLE_APP_SLEEPMODE工作。我需要如何发送和接收字节(或任何其他类型的数据)的最简单的例子。
到目前为止,唯一一个值得注意的尝试在“app_on_connection”回调中呼叫以下功能。
void sensor_int_send_ble()
{
struct musts1_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->值,和样本,def_cust1_adc_val_1_char_len);
KE_MSG_SEND(REQ);
}
但是,当我使用BLE扫描仪连接到DA14580时,不提供结果。
除了如何配置睡眠?睡眠“深度”,据我所知,可以用简单的宏选择。但是什么时候睡觉或醒来?
提前致谢。
设备:

嗨Toddgun,
关于通过蓝牙发送和接收数据,可能是app_ble_sleepmode示例不是最好的开始,该示例实现了一个自定义服务,您可以在其中添加一些代码,该代码具有发送数据,而是当前实现仅发送其限制状态一个按钮,所以通过BLE_APP_SLEEPMODE示例,您只能将手机发送到SW3交换机的状态,如果按下或不按。如果您想要一个示例以便发送数据我将推荐BLE_APP_PERITIVELAL示例,则该项目通过内核定时器将一些虚拟数据发送到手机。您必须要做的就是启用它是将0x01发送到第一个特征(命名控制点),然后在ADC值1特征处启用通知(从手机应用程序中读取用户描述特性,以便找出哪个特征具有哪些功能)。只要启用通知,您将看到ADC值1特征与虚拟值更新。通知的发送是由app_adcval1_timer_cb_handler()函数触发的(当计时器时执行的函数 - timer_used = app_easy_timer(已经过app_periph ......已经过去)。分配命令custs1_val_ntf_req,用配置正确填充并将数据发送并转发到堆栈,然后设置新的计时器以便发送下一个通知。
关于睡眠,这是由Strutcure app_default_sleep_mode配置的,具体取决于设备将落在No_Sleep,Extended_sleep,Deep_sleep中,设备睡眠的值是自我定义的,这意味着每当有越来越多的设备BLE事件设备将编程唤醒它自我以便为该事件提供服务,任一个是连接事件的广告事件,计时器事件和外部中断,如果没有事件,设备将继续睡眠。违法行为您可以通过ARCH_SET_EXTEDDE_SLEEP(),ARCH_SET_DEEP_SLEEP()或ARCH_DISABLE_SLEEP()在运行时动态更改休眠模式。
谢谢mt_dialog.