http://www.javashuo.com/article/p-faxltlcy-db.htmlhtml
先說一下總體思路哈..測試
咱滑動的時候spa
會進入這個,而後咱呢不直接從這個裏面寫發送3d
由於這樣的話太快了,,咱的單片機是用任務處理code
咱就作一個10ms的定時器,實時檢測進度條值的變化,若是此次的值和上次的值不同就發送htm
定義一個變量用來存儲上次的狀態blog
如今測試一下,發給另外一個串口,而後計算下get
好如今控制燈iframe
本身去測試吧,本身擴展成控制舵機,控制電機轉速均可以io
而後給你們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 如今你們先本身摸索把,或者百度