资源描述:
《MODBUS_源代码_内含CRC算法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MODBUS源代码内含CRC算法.#include"system.h"#include"math.h"unsignedintBUFF[1900];unsignedcharOUTBUFF[452];//MODBUS主站状态u8modbusSta2;//WAITREADYNOREPLAYexternu8runflage;externu16constant0;externu16constant1;externu16runlightime;externu16slaverOutputtimeup;externu8RTDELAY,X2;longIOmod1;longIOmod2;
2、longIOmod3;longIOmod1_o;longIOmod2_o;longIOmod3_o;u8check_adr_1(void);voidcheck_fun_1(void);voidfun1s_1(void);voidfun2s_1(void);voidfun3s_1(void);voidfun5s_1(void);voidfun22s_1(void);voidfun23s_1(void);voidfun0s_1(void);voidSlaveAnswer_1(u8adr,u8fun);voidmessage_out_1(void);u8check_adr_
3、2(void);voidcheck_fun_2(void);voidfun0s_2(void);voidfun1s_2(void);voidfun2s_2(void);voidfun3s_2(void);voidfun5s_2(void);voidfun22s_2(void);voidfun23s_2(void);voidfun1m_2(void);voidfun22m_2(void);voidfun5m_2(void);voidfun3m_2(void);//voidfun0s_2(void);voidSlaveAnswer_2(u8adr,u8fun);voidm
4、essage_out_2(void);voidSETremote(u8out,u8temp1,u8temp2,u8temp3);voidtestComm(void);voidIO_rewrite(u8N0);tagmodbuserrormodbuserror;u16errorcode;u16a1,a2,a3,a4,failask;u8commSTA;u8remotein[4][3];u8noreplayNu;//主机等待信息u8funadr[3][3];//[i][0]是从机地址,[i][1]是从机映射到主控的开始地址(如果是自己设备就是24*(i+1))u8funa
5、dr_[3][2];//[i][0]是从机读取开始地址,[i][1]是读取长度u8funlongth;//写入长度structmessageS{unsignedcharbuffer[180];unsignedcharcounter;}messageRe_2,messageOut_2,messageRe_1,messageOut_1;u8DataInRam_hi[64];u8DataInRam_lo[64];unsignedintin_re=0,out_re;unsignedcharOutReady2=0;unsignedcharOutReady1=0;unsigned
6、char*p;//*************************crc校验码生成**********************************/CRC16()*********************************************staticunsignedcharauchCRCHi[]={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,0x
7、C1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,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,