打印

PSOC中的CRC16模块谁用过,交流一下

[复制链接]
1849|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ni_labview|  楼主 | 2009-2-20 13:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我目前的变送器中是用的软件CRC校验,模仿台达PLC的MODBUS RTU定义方式,代码如下,哪位用过PSOC中硬件CRC16实现MODBUS RTU可否交流一下


#include <m8c.h>        // part specific constants and macros
#include "PSoCAPI.h"    // PSoC API definitions for all User Modules
#include "stdlib.h"
extern unsigned char CRC_buf[10];

unsigned int CRC_Check(unsigned char *CRC_buf1,unsigned char BuffLen)
{
   unsigned int CRC_ReturnValue = 0xFFFF;
   unsigned char i=0,j;
   while ( BuffLen -- )
     {
       CRC_ReturnValue ^= CRC_buf1[i++];
       j = 8;
       do
         {
            if ( CRC_ReturnValue & 0x01 )
               {
                 CRC_ReturnValue = ( CRC_ReturnValue >> 1 ) ^ 0xA001;
                }
            else
               {
                 CRC_ReturnValue = CRC_ReturnValue >> 1;
               }
            -- j;
          }
       while ( j );
      }
    return CRC_ReturnValue; // 
  }
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

178

主题

624

帖子

2

粉丝