打印

关于lrc校验的问题

[复制链接]
1916|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuandaoxy|  楼主 | 2007-8-10 09:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在调试modbus的asc协议,不太明白,协议里讲

使用ASCII模式,消息包括了一基于LRC方法的错误检测域。LRC域检测了消息域中除开始的
冒号及结束的回车换行号外的内容。

于是我设了一个两字节的数组char pp[2]={0x36,0x30};

数组不包括冒号及结束的回车换行号外的内容,

完整代码如下

#include <reg52.h>


 #define uchar     unsigned char    


unsigned char lrc(unsigned char *str,int lenth)
{
    unsigned char tmp;
    tmp = 0;
    
    while (lenth-- )
    {
       tmp += *str++;
   
    }
    return ((unsigned char)(-((char)tmp)));
}


main()
{
        char pp[2]={0x36,0x30};
        lrc(pp,2);






while(1)
{}


}

计算出来lrc=0x0112,我不知道怎抹去比较传递的消息正确与否

那位做过的兄弟指点一下,举个例子

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

854

主题

1043

帖子

4

粉丝