- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CRC16算法
最近一个项目用到以16进制数据进行串口通讯要求:读取信号测量值命令:A30CC? A (范围0X00-0XFF),表示指定传感器的16进制地址,一字节? 30 功能码(十六进制)? CC CRC16校验码回答:A3004(data)CC? A (范围0X00-0XFF),表示指定传感器的16进制地址,一字节? 30 功能码(十六进制)? 04 数据字节长度? data 四字节数据,表示信号的测量值? CC CRC16校验码命令集中所有数据均为16进制表示以前只做过串口读取ascii码的数据,没做过读取16进制数据,不知道怎么发送请求命令,并读取数据.还有数据是16进制的,在控件上要不要设什么还有最后的crc16效验码不知道怎么生成,网上看见些现成的crc16函数,但不知道怎么和这问题结合起来高手帮帮我啊,我一般使用cnrs232控件(spcomm的修改版)
var? buf: array[0..4] of byte;procedure send;begin? buf[0]:=$01;? buf[1]:=$30;? buf[2]:=..;? senddata(buf);end;procedure senddata(sbuf:array of byte);begin? if not comm1.WriteCommData(@sbuf,length(sbuf)) then? begin? showmessage(发送错误);? end;end;
刚找到crc16算法? unit CRCUnit; ? ? ? ? interface ? ? uses ? ? Windows,SysUtils; ? ? type ? ? PBYTE =^Byte; ? ? ? ? //计算CRC检验码 ? ? function Get_CRC16(const pData:Pointer;nLength:Integer):string; ? ? //检验函数 ? ? function Check_CRC16(const pData:Pointer;nLength:Integer):Boolean; ? ? //获取指定字符串的CRC验证码 ? ? function Get_CRC16Code(strValue : string) : string; ? ? ? ? const ? ? //16位的CRC检验表 ? ? CRCTable16 : array[0..255] of Word = ( ? ? $0000, $1189, $2312, $329b, $4624, $57ad, $6536, $74bf, ? ? $8c48, $9dc1, $af5a, $bed3, $ca6c, $dbe5, $e97e, $f8f7, ? ? $1081, $0108, $3393, $221a, $56a5, $472c, $75b7, $643e, ? ? $9cc9, $8d40, $bfdb, $ae52, $daed, $cb64, $f9ff, $e876, ? ? $2102, $308b, $0210, $1399, $6726, $76af, $4434, $55bd, ? ? $ad4a, $bcc3, $8e58, $9fd1, $eb6e, $fae7, $c87c, $d9f5, ? ? $3183, $200a, $1291, $0318, $77a7, $662e, $54b5, $453c, ? ? $bdcb, $ac42, $9ed9, $8f50, $fbef, $ea66, $d8fd, $c974, ? ? $4204, $538d, $6116, $709f, $0420, $15a9, $2732, $36bb, ? ? $ce4c, $dfc5, $ed5e, $fcd7, $8868, $99e1, $ab7a, $baf3, ? ? $5285, $430c, $7197, $601e, $14a1, $0528, $37b3, $263a, ? ? $decd, $cf44, $fddf, $ec56, $98e9, $8960, $bbfb, $aa72, ? ? $6306, $728f, $4014, $519d, $2522, $34ab, $0630, $17b9, ? ? $ef4e, $fec7, $cc5c, $ddd5, $a96a, $b8e3, $8a78, $9bf1, ? ? $7387, $620e, $5095, $411c, $35a3,
文档评论(0)