编辑代码

#include <stdio.h>
#include <stdint.h>

typedef struct
{
    uint8_t head;       //数据头
    uint8_t acdata[64]; //心率波形数据
    uint8_t heatrate;   //心率
    uint8_t spo2;       //血氧
    uint8_t bk;         //微循环
    uint8_t rsv[8];     //0-疲劳指数 1~2保留 3-收缩压 4-舒张压 5-心输出 6-外周阻力 7-rr间期
    uint8_t sdnn;       //心率变异性
    uint8_t rmssd;
    uint8_t nn50;
    uint8_t pnn50;
    uint8_t rra[6];     //0-5 rr间期
    uint8_t rsv2[2];    //0~1保留
}sensor_info_t;

int main () {
    sensor_info_t *sensor_info;
    uint8_t rate_buf[100] = {};
    char rate_info_buf[] = \
    "FF F6 F8 FA FB FD FE 00 01 02 04 05 05 05 04 03 02 01 00 00 00 00 01 01 02 02 03 04 06 07 09 0A 0C 0C 0D 0C 0B 09 06 04 01 00 00 00 00 00 02 04 07 08 0A 0B 0B 0A 08 05 02 00 FD FA F9 FA FB FE 01 53 60 00 1A 00 00 00 00 42 A4 5B 1A 1A 05 05 00 00 00 00 00 00 2E 01 ";
    
    for (uint16_t i = 0; i < 88; i ++)
    {
        sscanf(rate_info_buf + i * 3, "%x ", rate_buf + i);
    }
    sensor_info = (sensor_info_t*)rate_buf;

    printf("心率:%d\r\n",sensor_info->heatrate);
    printf("血氧:%d\r\n",sensor_info->spo2);
    printf("微循环:%d\r\n",sensor_info->bk);
    printf("疲劳指数:%d\r\n",sensor_info->rsv[0]);
    printf("收缩压:%d\r\n",sensor_info->rsv[3]);
    printf("舒张压:%d\r\n",sensor_info->rsv[4]);
    printf("心输出:%d\r\n",sensor_info->rsv[5]);
    printf("外周阻力:%d\r\n",sensor_info->rsv[6]);
    printf("rr间期:%d\r\n",sensor_info->rsv[7]);
    printf("sdnn:%d\r\n",sensor_info->sdnn);
    printf("rmssd:%d\r\n",sensor_info->rmssd);
    printf("nn50:%d\r\n",sensor_info->nn50);
    printf("pnn50:%d\r\n",sensor_info->pnn50);
    return 0;
}