手机端网站做appiis做网站上传速度慢
手机端网站做app,iis做网站上传速度慢,高端网站建设哪里好,建立网站需要多久《C语言编写modbus协议》由会员分享#xff0c;可在线阅读#xff0c;更多相关《C语言编写modbus协议(23页珍藏版)》请在人人文库网上搜索。1、include / 字地址 0 - 255 (只取低 8位) / 位地址 0 - 255 (只取低 8位)/* CRC 高位字节值表 */ const uint8 code auchCRCHi 0x0…《C语言编写modbus协议》由会员分享可在线阅读更多相关《C语言编写modbus协议(23页珍藏版)》请在人人文库网上搜索。1、include / 字地址 0 - 255 (只取低 8位) / 位地址 0 - 255 (只取低 8位)/* CRC 高位字节值表 */ const uint8 code auchCRCHi 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC。2、0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x4。3、0, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC。4、1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40。5、, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1。6、, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40/* CRC低位字节值表*/ const uint8 code auchCRCLo 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F。7、, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2。8、, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 0x22。9、, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60,0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F,。10、 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99,。11、 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, 0x40 uint8 testCoil; / 用于测试 位地址 1 uint16 testRegister; /用于测试 字址址 16uint8 localAddr 1; /单片机控制板。12、的地址 uint16 crc16(uint8 *puchMsg, uint16 usDataLen)uint8 sendCount;/ 发送字节个数uint8 receCount;/ 接收到的字节个数uint8 sendPosi;/ 发送位置uint8 uchCRCHi OxFF ; /*高 CRC字节初始化 */uint8 uchCRCLo 0xFF ; /*低 CRC 字节初始化 */uin t32 uln dex ; /* CRC 循环中的索引 */while (usDataLen-) /* 传输消息缓冲区 */ulndex uchCRCHi 八 *puchMsg ; /*。13、计算 CRC */uchCRCHi uchCRCLo 八 auchCRCHiul ndex;uchCRCLo auchCRCLoulndex ;return (uchCRCHi 1)sendCount-;ACC sendBuf0;TB8 P;SBUF sendBuf0;/void beginSend(void) / 读线圈状态void readCoil(void)uint8 addr;uint8 tempAddr;uint8 byteCount;uint8 bitCount;uint16 crcData;uint8 position;uint8 i,k;uint8 resu。14、lt;uint16 tempData;uint8 exit 0;/addr (receBuf2 addrbitCount) if(tempAddr addrbitCount) / 读完exit 1;break;if(exit 1)break;sendBuf0 localAddr;sendBuf1 0x01;sendBuf2 byteCount;crcData crc16(sendBuf,byteCount);sendBufbyteCount crcData 8;byteCount;sendBufbyteCount crcData 0xff。15、;sendCount byteCount 1;beginSend();/void readCoil(void)/读寄存器 void readRegisters(void)uint8 addr;uint8 tempAddr;uint16 result;uint16 crcData;uint8 readCount;uint8 byteCount;uint8 finsh; /1 完成 0 出错uint16 i;uint16 tempData 0;/addr (receBuf2 8;sendBufi4 tempData 0xff;sendBuf0 localAddr;se。16、ndBuf1 3;sendBuf2 byteCount;byteCount 3;crcData crc16(sendBuf,byteCount);sendBufbyteCount crcData 8;byteCount;sendBufbyteCount crcData 0xff;beginSend();sendCount byteCount 1;/void readRegisters(void)/ 强制单个线圈void forceSingleCoil(void)uint8 addr;uint8 tempAddr;uint16 tempData;uint8。17、 onOff;uint8 i;/addr (receBuf2 8;sendBuf3 addr 0xff;sendBuf4 setCount 8;crcData crc16(sendBuf,6);sendBuf5 setCount 0xff;sendBuf6 crcData 8;sendBuf7 crcData 0xff;sendCount 8;beginSend();/void presetMultipleRegisters(void)/ 检查 uart0 数据void checkComm0Modbus(void)uint16 crcData;uin。18、t16 tempData;if(receCount 4)switch(receBuf1)case 1:/读取线圈状态 (读取点 16 位以内 )case 3:/读取保持寄存器 (一个或多个 )case 5:/强制单个线圈case 6:/设置单个寄存器if(receCount 8)/接收完成一组数据/ 应该关闭接收中断if(receBuf0localAddr checkoutError0)crcData crc16(receBuf,6);if(crcData receBuf7(receBuf6 tempData)if(receBuf0localAddr checko。19、utError0)crcData crc16(receBuf,tempDat-a2);if(crcData (receBuftempData-2 tempData)if(receBuf0localAddr checkoutError0)crcData crc16(receBuf,tempDat-a2);if(crcData (receBuftempData-28) receBuftempData-1)presetMultipleRegisters();receCount 0;checkoutError 0;break;default:break;/void。20、 checkComm0(void)/ 取线圈状态 返回 0 表示成功uint16 getCoilVal(uint16 addr,uint16 *tempData)uint16 result 0;uint16 tempAddr;tempAddr addr 0xfff;/ 只取低 8 位地址switch(tempAddr 0xff)case 0:break;case 1:*tempData testCoil;break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:break;case 7:break;ca。21、se 8:break;case 9:break;case 10:break;case 11:break;case 12:break;case 13:break;case 14:break;case 15:break;case 16:break;default:break;return result;/uint16 getCoilVal(uint16 addr,uint16 *data)/ 设定线圈状态 返回 0 表示成功uint16 setCoilVal(uint16 addr,uint16 tempData)uint16 result 0;uint16 tempAddr;tempAddr。22、 addr 0xfff;switch(tempAddr 0xff)case 0:break;case 1:testCoil tempData;break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:break;case 7:break;case 8:break;case 9:break;case 10:break;case 11:break;case 12:break;case 13:break;case 14:break;case 15:break;case 16:break;default:break。23、;return result;/uint16 setCoilVal(uint16 addr,uint16 data)/ 取寄存器值 返回 0 表示成功uint16 getRegisterVal(uint16 addr,uint16 *tempData)uint16 result 0;uint16 tempAddr;tempAddr addr 0xfff;switch(tempAddr 0xff)case 0:break;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:break;ca。24、se 7:break;case 8:break;case 9:break;case 10:break;case 11:break;case 12:break;case 13:break;case 14:break;case 15:break;case 16:*tempData testRegister;break;default:break;return result;/设置寄存器值 返回 0表示成功/uint16 getRegisterVal(uint16 addr,uint16 data)uint16 setRegisterVal(uint16 addr,uint16 tempDat。25、a)uint16 result 0;uint16 tempAddr;tempAddr addr 0xfff;switch(tempAddr 0xff)case 0:break;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:break;case 7:break;case 8:break;case 9:break;case 10:break;case 11:break;case 12:break;case 13:break;case 14:break;case 15:break;case 16:testRegister tempData;break;default:break;return result;/uint8 setRegisterVal(uint16 addr,uint16 data。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/92535.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!