国产蝌蚪视频在线观看_亚洲亚色_日批网站免费_亚拍一区_69网站_九热精品_最新中文在线视频_欧美视频日韩视频_国内精品二区_天堂资源站_av综合一区_国产精品久免费的黄网站_四虎免费在线观看_少妇做爰奶水狂喷视频_野花视频韩国免费观看3_久久国产精品亚洲人一区二区三区_国产日产精品_国产精品毛片_亚洲精品久久草草起碰_国产偷国产偷亚洲综合av_两个人日本WWW免费版_91麻豆视频_亚欧在线观看视频_久久久99免费_久久精品视频12_麻豆视频播放_日本高清WWW午色夜COM_公和我做好爽添厨房_成人午夜剧场在线观看_gay无套ⅹxxoo_在线观看成人福利

qinchenglim
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 456 個
工控威望: 1326 點(diǎn)
下載積分: 3951 分
在線時間: 740(小時)
注冊時間: 2009-06-09
最后登錄: 2025-09-01
查看qinchenglim的 主題 / 回貼
樓主  發(fā)表于: 2014-07-16 18:37
現(xiàn)在用到一款溫控器,用RS-232通訊讀取當(dāng)前溫度值。用PLC發(fā)送讀取指令的時候要發(fā)送FCS效驗碼,以前沒有用過這樣的效驗方式,不知道怎么計算,請用過的朋友分享一下計算方法。先謝謝了!
比如發(fā)送數(shù)據(jù) H4030 H3030 H3131 ,它的FCS效驗碼是多少?怎么算的?再次感謝大家。
yamqq
雅馬哈,愛普生,電裝機(jī)器人。
級別: 網(wǎng)絡(luò)英雄

精華主題: 0
發(fā)帖數(shù)量: 1347 個
工控威望: 5548 點(diǎn)
下載積分: 24806 分
在線時間: 303(小時)
注冊時間: 2008-05-05
最后登錄: 2025-07-14
查看yamqq的 主題 / 回貼
1樓  發(fā)表于: 2014-07-16 18:59
#include "stdafx.h"   char *fnFCS(const char *pstr,int iCount,char *pFCS)    //定義FCS校驗函數(shù) {   if(pstr==NULL||pFCS==NULL)       //如果指針為null return NULL;           //返回NULL char ch=*pstr;          //定義字符變量并賦初值 for(int i=1;i<iCount;i++)        //循環(huán)iCount次 {     ch^=*(pstr+i);         //異或運(yùn)算 }   char ct=ch>>4;            //取異或結(jié)果的高四位 if(ct>9)            //轉(zhuǎn)為ASCII碼 ct+='A'-10;            else    ct+='0';  *pFCS=ct; ct=ch&0x0F;           //取異或結(jié)果的低四位 if(ct>9)             //轉(zhuǎn)為ASCII碼 ct+='A'-10;  else    ct+='0';   *(pFCS+1)=ct;    return pFCS;           //返回校驗值 }    int main(int argc, char* argv[])       //定義主函數(shù) {  char c,str[100]="";         //定義變量  int i=0;           //定義變量  char jyTemp[2];         //定義變量  printf("請輸入要校驗的字符串:\n");     //要求輸入字符串   while((str=getchar())!='\n')       //輸入字符串,直到遇到回車符  {   i+=1;   fnFCS(str,i,&jyTemp[0]);      //調(diào)用FCS計算函數(shù)  }   printf("以上字符串的FCS校驗是:'%c%c'。\n",jyTemp[0],jyTemp[1]);  //輸出結(jié)果  return 0; }
本帖最近評分記錄:
  • 下載積分:+2(qinchenglim) 熱心助人!
  • 這個人很懶,什么也沒有留下!
    qinchenglim
    級別: 論壇先鋒
    精華主題: 0
    發(fā)帖數(shù)量: 456 個
    工控威望: 1326 點(diǎn)
    下載積分: 3951 分
    在線時間: 740(小時)
    注冊時間: 2009-06-09
    最后登錄: 2025-09-01
    查看qinchenglim的 主題 / 回貼
    2樓  發(fā)表于: 2014-07-17 08:09
    引用
    引用第1樓yamqq于2014-07-16 18:59發(fā)表的  :
    #include "stdafx.h"   char *fnFCS(const char *pstr,int iCount,char *pFCS)    //定義FCS校驗函數(shù) {   if(pstr==NULL||pFCS==NULL)       //如果指針為null return NULL;           //返回NULL char ch=*pstr;          //定義字符變量并賦初值 for(int i=1;i<iCount;i++)        //循環(huán)iCount次 {     ch^=*(pstr+i);         //異或運(yùn)算 }   char ct=ch>>4;            //取異或結(jié)果的高四位 if(ct>9)            //轉(zhuǎn)為ASCII碼 ct+='A'-10;            else    ct+='0';  *pFCS=ct; ct=ch&0x0F;           //取異或結(jié)果的低四位 if(ct>9)             //轉(zhuǎn)為ASCII碼 ct+='A'-10;  else    ct+='0';   *(pFCS+1)=ct;    return pFCS;           //返回校驗值 }    int main(int argc, char* argv[])       //定義主函數(shù) {  char c,str[100]="";         //定義變量  int i=0;           //定義變量  char jyTemp[2];         //定義變量  printf("請輸入要校驗的字符串:\n");     //要求輸入字符串   while((str=getchar())!='\n')       //輸入字符串,直到遇到回車符  {   i+=1;   fnFCS(str,i,&jyTemp[0]);      //調(diào)用FCS計算函數(shù)  }   printf("以上字符串的FCS校驗是:'%c%c'。\n",jyTemp[0],jyTemp[1]);  //輸出結(jié)果  return 0; }

    一樓的朋友能具體解釋一下FCS的計算原理嗎?這么多高級語言看著有點(diǎn)眼暈了
    qinchenglim
    級別: 論壇先鋒
    精華主題: 0
    發(fā)帖數(shù)量: 456 個
    工控威望: 1326 點(diǎn)
    下載積分: 3951 分
    在線時間: 740(小時)
    注冊時間: 2009-06-09
    最后登錄: 2025-09-01
    查看qinchenglim的 主題 / 回貼
    3樓  發(fā)表于: 2014-07-18 07:35
    自己頂一下,別沉底了

    石家庄市| 温州市| 秭归县| 龙游县| 同德县| 中宁县| 讷河市| 南漳县| 岱山县| 秭归县| 迁安市| 永康市| 齐齐哈尔市| 鄂尔多斯市| 土默特右旗| 闸北区| 永寿县| 曲沃县| 永泰县| 临夏县| 禹城市| 年辖:市辖区| 梅河口市| 长顺县| 景宁| 饶平县| 绍兴县| 禹州市| 司法| 南投市| 鞍山市| 东阳市| 富川| 隆德县| 赫章县| 巴中市| 乌鲁木齐县| 郑州市| 南昌市| 禄劝| 陵川县|