你好呀,
我想捕获ECG信号,然后我想将它们转换为在BPM中的心率,并且我希望通过BLE发送信号到智能手机。智能手机将使用BLE扫描仪获得阅读。我在SDK文件夹中修改了BLE_APP_PERIANTAL示例,以便我能够捕获数据(请参阅附件)。我已经意识到,问题最可能是由于ADC功能。我是否放在错误的位置,我应该放在哪里?
adc_init(gp_adc_se,gp_adc_sign,gp_adc_attn3x).........
非常感谢你。
除此之外,我不知道如何将ADC输出链接到自定义配置文件,基本上,ADC的输出在ECG信号中,我需要将它们转换为心率。我需要使用hrpc.c,hrpc_task.c吗?谢谢
嗨Herochua617,
没有BLE实现,您是否从ECG和ADC获取任何值?如果是,则可以转到下一步并通过BLE发送值。存在心率配置文件文件,以便使用SIG标准心率曲线分开发送HRP值,因为Tha个人资料将为您提供何时可以为您做任何难题,可以使用自定义配置文件从传感器发送值。关于您必须放置读取ADC功能的地方,您可以在向堆栈发送通知之前执行此操作。关于如何发送值,您在app_adcval1_timer_cb_handler()中拥有的样本变量是每次定时器经过的时候它将其发送到中央的虚拟值,因此您可以用从ADC读取的值替换该数据。
谢谢mt_dialog.
嗨mt_dialog,
我想问一下。如果我想从SPI运行此配置文件,我是否需要在BLE_PERITALL_APP中配置任何内容?由于我可以使用智能片段直接烧毁SPI内的编码,并且当我在硬币电池电量供应时运行开发套件时,它将自动运行?我对吗?谢谢
我从自定义档案中获得的不是心率。实际上是ECG信号值,它是从ADC输出获得的值。我知道我需要修复ECG信号的QRS复合物的间隔,以获得心率值。但是你有什么例子是如何配置的?谢谢
1.可行的ADC值通知ADC_VAL_1_UUID_128(UUID 0x17,0xB9,0x67,0x98,0x4c,0x66,0x4c,0x01,0x96,0x33,0x31,0xb1,0x91,0x59,0x00,0x15)2.将0x01写入ctrl_pointctrl_point_uuid_128(0x20,0xee,0x8d,0x0c,0xe1,0xf0,0x4a,0x0c,0xb3,0x25,0xdc,0x53,0x6a,0x68,0x86,0x2d)ADC Func位置你放了不对。
嗨Chey856,
非常感谢你!。我能够看到价值变化。请问?控制点的功能是什么?为什么我需要打开以获得价值?谢谢
Chey856请求的控制点特性是一种特征,当写入时,它在FW中启用内核定时器。当内核定时器经过时,它会触发向堆栈发送通知并最终在手机上重置计时器。因此,只要您写入该特征,就触发函数user_custs1_ctrl_wr_ind_handler()并启动计时器,当计时器经过App_Adcval1_Timer_CB_Handler()被触发时。
thaks mt_dialog
这是正确的!非常感谢你顺便说一下,你可以告诉DA14580的ADC采样率
它在数据表中提到,“最大采样率为3.3 msample / s”。
如果我想采取数据并将它们转换为心率,以便如何将ADC值1转换为心率。我能用现有代码进行吗?谢谢
心率=(ADC_GET_SAMPLE()* 1.2VOLT * ADC_ATTN3X)/ 1023如果未在ADC_INIT()中未设置ADC_ATTN3X,则设置ADC_ATTN3X = 1其他SET ADC_ATTN3X = 31.2VOLT是参考电压10bit ADC所以它的决议:2 ^ 10 - 1 = 1023您应该看看“Projects \ target_apps \ peripheral_examples \ adc \ batt_lvl”示例
静态uint16_t heart_rate,样本,sample2;
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;heart_rate =(heart_rate * 3.6)/ 1023;
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(100,app_adcval1_timer_cb_handler);}}
这是我的代码。我从BLE Scanner App的ADC Val 1特性获得0x01。任何建议吗?
谢谢
对不起,迟到,似乎你的代码还可以,你能告诉我有关你项目的更多细节吗?我的邮箱:cheyu856@gmail.com.
我已经回复了你的邮件。谢谢
嗨,大家好,
我可以使用HRPS配置文件与我的心率设备一起使用吗?这将更容易,因为HRPS将在HRPS中有算法,它会将我的数据转换为可读的心率而不是十六进制值?
HRP只是一个SIG标准,它只是以特定方式格式化传感器的数据,以便由其他客户端设备读取,它没有算法实现或任何额外的东西,它只是表达心率值的标准方法订购其他设备能够解释它们。
谢谢。然后这个解决了我的问题https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...。谢谢。但是,我正在尝试自己检测到间隔的方式。我想在两个峰之间获得时间https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...。非常感谢你!
你好呀,
除此之外,我不知道如何将ADC输出链接到自定义配置文件,基本上,ADC的输出在ECG信号中,我需要将它们转换为心率。我需要使用hrpc.c,hrpc_task.c吗?谢谢
嗨Herochua617,
没有BLE实现,您是否从ECG和ADC获取任何值?如果是,则可以转到下一步并通过BLE发送值。存在心率配置文件文件,以便使用SIG标准心率曲线分开发送HRP值,因为Tha个人资料将为您提供何时可以为您做任何难题,可以使用自定义配置文件从传感器发送值。关于您必须放置读取ADC功能的地方,您可以在向堆栈发送通知之前执行此操作。关于如何发送值,您在app_adcval1_timer_cb_handler()中拥有的样本变量是每次定时器经过的时候它将其发送到中央的虚拟值,因此您可以用从ADC读取的值替换该数据。
谢谢mt_dialog.
嗨mt_dialog,
我想问一下。如果我想从SPI运行此配置文件,我是否需要在BLE_PERITALL_APP中配置任何内容?由于我可以使用智能片段直接烧毁SPI内的编码,并且当我在硬币电池电量供应时运行开发套件时,它将自动运行?我对吗?谢谢
你好呀,
我从自定义档案中获得的不是心率。实际上是ECG信号值,它是从ADC输出获得的值。我知道我需要修复ECG信号的QRS复合物的间隔,以获得心率值。但是你有什么例子是如何配置的?谢谢
1.可行的ADC值通知
ADC_VAL_1_UUID_128(UUID 0x17,0xB9,0x67,0x98,0x4c,0x66,0x4c,0x01,0x96,0x33,0x31,0xb1,0x91,0x59,0x00,0x15)
2.将0x01写入ctrl_point
ctrl_point_uuid_128(0x20,0xee,0x8d,0x0c,0xe1,0xf0,0x4a,0x0c,0xb3,0x25,0xdc,0x53,0x6a,0x68,0x86,0x2d)
ADC Func位置你放了不对。
嗨Chey856,
非常感谢你!。我能够看到价值变化。请问?控制点的功能是什么?为什么我需要打开以获得价值?谢谢
嗨Herochua617,
Chey856请求的控制点特性是一种特征,当写入时,它在FW中启用内核定时器。当内核定时器经过时,它会触发向堆栈发送通知并最终在手机上重置计时器。因此,只要您写入该特征,就触发函数user_custs1_ctrl_wr_ind_handler()并启动计时器,当计时器经过App_Adcval1_Timer_CB_Handler()被触发时。
thaks mt_dialog
这是正确的!非常感谢你
顺便说一下,你可以告诉DA14580的ADC采样率
嗨Chey856,
它在数据表中提到,“最大采样率为3.3 msample / s”。
谢谢mt_dialog.
你好呀,
如果我想采取数据并将它们转换为心率,以便如何将ADC值1转换为心率。我能用现有代码进行吗?谢谢
心率=(ADC_GET_SAMPLE()* 1.2VOLT * ADC_ATTN3X)/ 1023
如果未在ADC_INIT()中未设置ADC_ATTN3X,则设置ADC_ATTN3X = 1其他SET ADC_ATTN3X = 3
1.2VOLT是参考电压
10bit ADC所以它的决议:2 ^ 10 - 1 = 1023
您应该看看“Projects \ target_apps \ peripheral_examples \ adc \ batt_lvl”示例
静态uint16_t heart_rate,样本,sample2;
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;
heart_rate =(heart_rate * 3.6)/ 1023;
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(100,app_adcval1_timer_cb_handler);
}
}
这是我的代码。我从BLE Scanner App的ADC Val 1特性获得0x01。任何建议吗?
谢谢
对不起,迟到,似乎你的代码还可以,你能告诉我有关你项目的更多细节吗?
我的邮箱:cheyu856@gmail.com.
我已经回复了你的邮件。谢谢
嗨,大家好,
我可以使用HRPS配置文件与我的心率设备一起使用吗?这将更容易,因为HRPS将在HRPS中有算法,它会将我的数据转换为可读的心率而不是十六进制值?
嗨Herochua617,
HRP只是一个SIG标准,它只是以特定方式格式化传感器的数据,以便由其他客户端设备读取,它没有算法实现或任何额外的东西,它只是表达心率值的标准方法订购其他设备能够解释它们。
谢谢mt_dialog.
嗨mt_dialog,
谢谢。然后这个解决了我的问题https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...。谢谢。但是,我正在尝试自己检测到间隔的方式。我想在两个峰之间获得时间https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...。非常感谢你!