https://www.cnblogs.com/yangfengwu/p/11104167.html
私は、全体のSiluハについてお話しましょう。..
私たちは、スライドさせると
これを入力します、あなたは内部から直接書いていません
その場合にはあまりにも早く,,私たちは、SCMの課題に対処しているので
この値が送信された前回値と同じでない場合のは、10ミリ秒のプログレスバーの値の変化のタイマー、リアルタイム検出をやってみましょう
以前の状態を格納するための変数の定義
さて、テスト、別のシリアルポートに送信され、その後、次の計算
まあ今のライトを制御します
自身がそれをテストするために、その制御サーボを拡大するために、モータの速度制御が可能
そして、誰もCRCコードCRCと一貫性のCRCを計算したCRC先のマイクロコントローラは、あなたは最後の二つにCRCデータを追加することができます
/// <CRC 效验 > /// /// </summary> /// <param name="modbusdata"></param> /// <param name="length"></param> /// <returns></returns> private int crc16_modbus(byte[] modbusdata, int length) { int i, j; int crc = 0xffff; try { for (i = 0; i < length; i++) { crc ^= modbusdata[i]; for (j = 0; j < 8; j++) { if ((crc & 0x01) == 1) { crc = (crc >> 1) ^ 0xa001; } else { crc >>= 1; } } } } catch (Exception) { throw; } return crc; } /* modbusdata 要校验的数据 length 数据长度 返回值 1 正确 0 错误 */ private int crc16_flage(byte[] modbusdata, int length) { int Receive_CRC = 0, calculation = 0;//接收到的CRC,计算的CRC Receive_CRC = crc16_modbus(modbusdata, length); calculation = modbusdata[length + 1]; calculation <<= 8; calculation += modbusdata[length]; if (calculation != Receive_CRC) { return 0; } return 1; }
提示:CRC使用
后面咱会使用起来CRC 现在大家先自己摸索把,或者百度