打印

奇偶校验问题

[复制链接]
1346|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gxgclg|  楼主 | 2014-2-25 18:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ce, CRC, rc, COM, ck
第一次接触RTU,用S52的片子,程序基本功能写好以后,只要加上奇偶校验就出问题,例如我接受到上位机的指令00 03 00 00 00 01 crc,加上奇偶校验的程序不是没反应就是应答为00 03 00 00 00 3F CRC,总是不对,我的这部分程序是借鉴网络上的的代码,如下:
        if(RI)
{
   RI=0;T
   receBuf[receCount]=SBUF;  //接收数据
   receCount++;
   if(receCount==8)command_ok=1;
   commCount=receCount;
           ACC=receBuf[receCount];
           //以下进行奇偶校验
   if(P!=RB8) js_check=2;
           receCount&=0x0f;
   dwIntTick=0;TR0=1;//接收完数据,启动接收计时,检测是否停顿超过1.5个字符时间停顿!
}
检验校验部分如下:
       js_CRC=receBuf[7]+(receBuf[6]<<8);
if((receBuf[0]==0x0b)&&(js_CRC==crc_z))//是否发给本机,并CRC正确?
{
        if(js_check==1)//奇偶校验正确?
        { 相应的操作}
只要加上奇偶校验和检测马上出问题,反馈和接受都不行

相关帖子

沙发
秋天落叶| | 2014-2-25 18:46 | 只看该作者
一般奇偶校验在硬件做,还要注意通讯另一端要作相应设置

使用特权

评论回复
板凳
无冕之王| | 2014-2-25 18:57 | 只看该作者
看不明白,为什么在软件加入奇偶校验?

使用特权

评论回复
地板
pkat| | 2014-2-25 19:03 | 只看该作者
硬件串口自己可以配置为奇偶校验,不需软件干预的
RTU 11 bit 数据
1起始 + 8数据 + 1校验位 + 1停止位 = 11位

使用特权

评论回复
5
dfsa| | 2014-2-25 19:13 | 只看该作者
没看太明白

使用特权

评论回复
6
火箭球迷| | 2014-2-25 19:19 | 只看该作者
检查一下设置问题

使用特权

评论回复
7
baidudz| | 2014-2-25 19:28 | 只看该作者
无冕之王 发表于 2014-2-25 18:57
看不明白,为什么在软件加入奇偶校验?

为了防止传输出错

使用特权

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

本版积分规则

177

主题

1653

帖子

1

粉丝