1
LV从文件中读取数据然后每125*2个数据组成一包发送到单片机怎么搞
2011-07-11 19:21:43 keaixiao 浏览:1501次 【
如附件中的是处理后的数据把一个数分成2个数然后每125*2个数组+包头和校验位发送出去

求高手指导后边的命令包怎么样组成。

1、通信协议
  采用波特率115200bmp进行串口通信,1起始位,8数据位,无校验位,1停止位。
Master发送的指令(COM)和Slave对其的应答(RSP)是可变长度的字节流报文,其格式为: 。
    其中hd1和hd2为包头,其固定为hd1=0x55,hd2=0xAA;len为其后字节的总数(包括token,dat部分和chk),len的最大值不应超过252(即总包长不超过255字节);
    token为命令(COM)或应答(RSP)的代号;dat1,dat2,...datn为设置参数或发送数据或应答信息,报文可以没有数据(即纯命令);chk为前面除hd1和hd2的所有字节(不包含其本身)的CRC校验和(8位)。即就是len,token,dat1,dat2,...,datn,

2.校验数据
查表式计算8位CRC校验值的方法
按照 CCITT 的标准,8位CRC的多项式表达为: G=X^8+X^5+X^4+1
对应的查找表为:
unsigned char crc_table[]={
0,94,188,226,97,63,221,131,194,156,126,32,163,253,31,65,
157,195,33,127,252,162,64,30,95,1,227,190,62,96,130,220,
35,125,159,193,66,28,254,160,225,191,93,3,128,222,60,98,
190,224,2,92,223,129,99,61,124,34,192,158,29,67,161,255,
70,24,250,164,39,121,155,197,132,218,56,102,229,187,89,7,
219,133,103,57,186,228,6,88,25,71,165,251,120,38,196,154,
101,59,217,135,4,90,184,230,167,249,27,69,198,152,122,36,
248,166,68,26,153,199,37,123,58,100,134,216,91,5,231,185,
140,210,48,110,237,179,81,15,78,16,242,172,47,113,147,205,
17,79,173,243,112,46,204,146,211,141,111,49,178,236,14,80,
175,241,19,77,206,144,114,44,109,51,209,143,12,82,176,238,
50,108,142,208,83,13,239,177,240,174,76,18,145,207,45,115,
202,148,118,40,171,245,23,73,8,86,180,234,105,55,213,139,
87,9,235,181,54,104,138,212,149,203,41,119,244,170,72,22,
233,183,85,11,136,214,52,106,43,117,151,201,74,20,246,168,
116,43,200,150,21,75,169,247,182,232,10,84,215,137,107,53
};
计算单字节 in_byte 的 CRC-8 值如下:
crc_old=0;
crc_new=crc_table[crc_old xor in_byte];
如计算多个字节组成的字符串的 CRC-8 值,令 crc_old=crc_new,重复上述操作。

例IAR下C语言得出一组数据的检验数据子函数
u8 CheckSum(u8 *p, u8 len)
{  
  u8 i;
  u8 datacrc = 0;
  for(i = 0; i < len; i++)
  {
    datacrc = crc_table [datacrc^p
];
  }  
  return datacrc;
}
注:u8:unsigned char


1 条评论
查看更多评论
  •     实在不好意思,小弟初来乍到,没有什么贡献给大家的,还得给大家添麻烦,请先辈多多体谅!    现在要做一个汽车油表盘,就是360度那..

    浏览:3923次 评论:0
    2014-09-16 00:16:25
作者专栏
  • sltang

    注册时间:2024-12-21 15:45:59

  • samhuang63

    注册时间:2024-12-20 09:42:58

  • csq663347

    注册时间:2024-12-05 16:34:39

  • guohuiming

    注册时间:2024-11-14 08:49:44

  • 机飞弹打

    注册时间:2024-11-11 13:46:27

Copyright@http://nilab.com.cn all rights reserved 备案号:京ICP备12043750号-1
Powered by qibosoft V9.0 Code © 2003-2017 qibosoft
LABVIEW之家 QQ:181237912; email:Labviewzj@qq.com 项目合作 微信及手机:18510627229