你好呀,
我想从BLE扫描仪中排出小数值。我怎样才能实施它?我正在尝试使用ARCH_PRINTF的能力,但我不应该完全这样做。因为,我希望值在ADC Val 1的特征的属性中,谢谢!
这是我的代码:
void app_adcval1_timer_cb_handler()
{
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);
//待采样的ADC值
静态uint32_t heart_rate,样品,样品2;
adc_init(gp_adc_se,0,gp_adc_attn3x);
adc_enable_channel(adc_channel_p01);
sample = adc_get_sample();
adc_init(gp_adc_se,gp_adc_sign,gp_adc_attn3x);
adc_enable_channel(adc_channel_p01);
sample2 = adc_get_sample();
heart_rate =(样本+样品2);
heart_rate = heart_rate / 2;
req-> conhdl = app_env-> conhdl;
req-> handle = cust1_idx_adc_val_1_val;
req-> length = def_cust1_adc_val_1_char_len;
memcpy(req->值,&heart_rate,def_cust1_adc_val_1_char_len);
KE_MSG_SEND(REQ);
if(ke_state_get(task_app)== app_connected)
{
//再次设置它,直到控制特性接收到停止命令
timer_used = app_easy_timer(app_peripheral_ctrl_timer_delay,app_adcval1_timer_cb_handler);
}
}
嗨Herochua617,
您只需启用它并配置UART TX / RX的分析GPIO。拍摄样本ble_app_peripehral。定义宏CFG_PRINTF,ARCH_PRINTF将运行。
你好呀,
只是为了用它确认,我将在我的手机上从我的手机上的adc Val 1特征获取来自小数点的特征的值?我已经完成了UART_TX和RX,并且我还在BLE_APP_PERITITAL中定义了user_custs1_impl.c中的宏。我已经写了这样的代码:
req-> conhdl = app_env-> conhdl;
req-> handle = cust1_idx_adc_val_1_val;
req-> length = def_cust1_adc_val_1_char_len;
memcpy(req-> data,&heart_rate,def_cust1_adc_val_1_char_len);
ARCH_PRINTF();
由于req->数据是指向存储值以字节为单位的数组,并且它被定义为字符值,如何使用ARCH_PRINTF允许我从我的智能手机BLE扫描仪应用中获取整数值而不是十六进制的数量?我正在考虑把我的打印机放在印刷品才能做到这一点。
非常感谢你!
你好呀,
正如您可以在此处看到图片,我已链接。我只获得十六进制中的值。
嗨Herochua617,
我想我误解了你的问题。ARCH_PRINTF是通过UART打印出字符串。
作为您的问题,它总是发送到空中的十六进制值,并在App Side中收到的应用程序来决定如何使用这些十六进制值并相应地解释它们。
嗨lt_dialog,
即使我正在使用HRP配置文件,我仍然需要制作一个应用程序来解释价值观?不能使用BLE扫描仪应用程序在十进制中获取值?根据这个链接,他们能够在BLE Scanner应用程序中获得十进制值,因此这就是为什么我想知道它是否适用。https://github.com/armmbed/ble-examples/tree/master/blex_heartrate.。谢谢!
嗨Herochua671,
数据全部发送并在十六进制中收到。应用程序可以决定如何解释(或显示在显示器上)收到的数据。它可能是BLE扫描仪以更人性可读方式解释那些SIG轮廓的特征值,例如心率曲线。
非常感谢你。顺便说一下,请参阅我发表评论的此链接。谢谢https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...。