串口解析

fight_all 2019-11-19 11:32:25
有大佬知道串口解析数据的嘛?


void parse_serial(char *byte_buff, int byte_num) {
for (int i = 0; i < byte_num; i++) {
printf("%c", byte_buff[i]);
}
printf("\n");
}

这样打印一堆二进制数据,然后我想把他输出
printf("时间:%d, 1数据:%d, 2数据:%d, 3数据: %d, 4数据:%d, 5数据:%d, 6数据:%d, 温度:%d\n", byte_buff[0], byte_buff[1],
byte_buff[2], byte_buff[3], byte_buff[4], byte_buff[5], byte_buff[6], byte_buff[7]);

字节序号 字节内容 备注
1 0xA5 字头
2~5 时间 float型,低字节在前
6~9 1通道数据 float型,低字节在前
10~13 2通道数据 float型,低字节在前
14~17 3通道数据 float型,低字节在前
18~21 4通道数据 float型,低字节在前
22~25 5通道数据 float型,低字节在前
26~29 6通道数据 float型,低字节在前
30~33 温度 float型,低字节在前
34~35 备用
36 0x0D 字尾
...全文
76 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fight_all 2019-11-25
  • 打赏
  • 举报
回复
恩恩,这样是可以解决的

Acuity. 2019-11-23
  • 打赏
  • 举报
回复
约定串口传输大小端,定义一个关于上面数据的结构体,将整个buff拷贝到结构体检即可。
sturct data
{
float a;
float b;
float c;
int d;
char e;
};

struct data temp;

memcpy((char*)&temp, &buff[1], sizeof(temp));

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧