查看: 59|回复: 0
打印 上一主题 下一主题

51单片机的串口接收数据并分析

[复制链接] qrcode

580

主题

638

帖子

1860

积分

金牌会员

Rank: 6Rank: 6

积分
1860
楼主
跳转到指定楼层
发表于 2015-4-30 02:34 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
新手学习单片机。
想实现这么一个功能。
从另一个单片机中获得数据。
从串口得到数据。波特率为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进制的函数。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表