烽火社区

标题: 51单片机的串口接收数据并分析 [打印本页]

作者: chenghuitong    时间: 2015-4-30 02:34 AM
标题: 51单片机的串口接收数据并分析
新手学习单片机。
想实现这么一个功能。
从另一个单片机中获得数据。
从串口得到数据。波特率为2400。晶振是11.0592MHz
接收的数据格式如下。
一直循环油不同的数据。数据定义为:
FF FE 00 00 2D B0 02 B8 07 D0 1C 20 02 80 03 58 28 01 BF 01 7E 03 56 00 00 47 FF FD
其含义如下:
数据头:FFFE,两字节;
a: XXXX,4位BCD码,0表示无故障,否则为故障码后四位,出现故障码后,以下仅有时钟有效;
b: XXXX,两字节无符号整数,高位在前,0表示无有效数据输出;
c: XXXX,两字节有符号整数,高位在前;
d: XXXX,两字节无符号整数,高位在前;
e:XXXX,两字节有符号整数,高位在前;
f: XXXX,两字节无符号整数,高位在前;
g: XXXX,两字节有符号整数,高位在前,负数表示瞬时耗油速率;
h: XX, 一字节无符号整数;
i: XXXX,两字节无符号整数,高位在前,最大6553.5;
k: XXXX,两字节无符号整数,高位在前,最大655.35;
l: XXXX,两字节无符号整数,高位在前,0表示无有效数据输出;
m: XXXX,两字节无符号整数,第一字节为小时,第二字节为分钟;
n:XX,一字节,为数据包有进位累加和,从故障码开始按字节计算,用于校验;
o:FFFD,两字节

想把这些数据接收并分析好后,分别用变量存储,用于液晶的显示。
我想用12864。
不知道哪位大侠能给指导下。
万分感谢。
问题补充:2楼,主要是16进制数据,取段并转换为10进制的函数。




欢迎光临 烽火社区 (https://bbs.cnecport.com/) Powered by Discuz! X3.2