⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lrc-check-function.txt

📁 LRC校验函数说明及程序源码, 错误校验用于 ASCII 模式。这个错误校验码是一个 8 位二进制数
💻 TXT
字号:
LRC 错误校验用于 ASCII 模式。这个错误校验码是一个 8 位二进制数,可作为 2 个 
ASCII 十六进制字节传送。计算 LRC 码时,仅设备地址、功能代码、数据块字节参加
运算,而冒号 ( : ) 、回车符号 (CR) 、换行字符 (LF) 不参加运算。具体计算 LRC 码的步骤为: 
   ① 需运算的所有字节相加,所得之和丢弃进位。 
   ② 将上步计算出的 8 位字节取反或由 FFH 减去该 8 位字节。 
   ③ 将取反后的值加 1 即为 LRC 码。 
   接收端判断接收到的信息是否正确的简单方法是:将除冒号 ( : ) 、回车
   符号 (CR) 、换行字符 (LF) 以外的所有字节,包括 LRC 码相加并丢弃进位,若结
   果为 0 ,则表明信息传送正确,否则出错。


lrc=0;                              /* LRC 字节初始化
y=x+1;                            
while (y--)                         /* 传送消息 0~x为字符,包括起始标记
    {
      if(y==x)
    	lrc=data_in2[y];
      else  if(y!=0)
	      {
           lrc+=data_in2[y];          /* 累加
           if((lrc&0x0f)>9)
           lrc+=6;  
           }                                         
	}
lrc&=0x0f;
lrc=(~(lrc))+1;                     //取反加一





LRC校验是将本次传送的数据的各bit位分别进行异或,其结果作LRC,用HEX表示。命令字不参加验算。
例如N个字节数据块传送时





static unsigned char LRC(auchMsg,usDataLen)
unsigned char *auchMsg ; /* 要进行计算的消息 */
//unsigned short usDataLen ; /* LRC 要处理的字节的数量*/

//{ unsigned char uchLRC = 0 ; /* LRC 字节初始化 */
//while (usDataLen--) /* 传送消息 */
//uchLRC += *auchMsg++ ; /* 累加*/
//return ((unsigned char)(-((char_uchLRC))) ;
//}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -