STM32单片机的MODBUS通讯器毕业论文 - 图文(13)
35
基于单片机的MODBUS通讯器设计
0x22, 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, 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, 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 };
u16 CRC16(u8 *puckMsg,u8 usDataLen)//CRC16查表计算函数 { }
36
u8 uchCRCHi = 0xFF ; /* 高CRC字节初始化 */ u8 uchCRCLo = 0xFF ; /* 低CRC 字节初始化 */ u32 uIndex ; /* CRC循环中的索引 */ while (usDataLen--) /* 传输消息缓冲区 */ { }
return (uchCRCLo << 8 |uchCRCHi) ; //高位在前
uIndex = uchCRCHi ^ *puckMsg++ ; /* 计算CRC */ uchCRCHi = uchCRCLo ^ AuchCRCHi[uIndex] ; uchCRCLo = AuchCRCLo[uIndex] ;
基于单片机的MODBUS通讯器设计
void Begin_Send() {
TxCounter1 = 0; }
//主机MODBUS程序
void ReadSlaveMCUData(u8 saddr,u8 fuctionnum,u16 startaddr,u16 count) {
u16 CRCData;
USARTSendBuff[0]=saddr;//从机地址 USARTSendBuff[1]=fuctionnum;//功能码 USARTSendBuff[2]=startaddr/256;//从机地址高 USARTSendBuff[3]=startaddr%6;//从机地址低 USARTSendBuff[4]=count/256;//读字节数高 USARTSendBuff[5]=count%6;//读取字节数低 CRCData=CRC16(USARTSendBuff,6);//返回CRC校验 USARTSendBuff[6]=(u8)CRCData;
USARTSendBuff[7]=(u8)(CRCData>>8);//加入CRC校验 SendByteNum=8; //送入要发送的字节数 //Send_Buf=TxBuffer1;
USART_SendData(USART1, USARTSendBuff[TxCounter1]); TxCounter1++;
Begin_Send(); }
37
基于单片机的MODBUS通讯器设计
附录6 从机通讯程序代码 #include
unsigned char xdata receBuf[16]={0x01,0x01,10,11,12,13,14,9}; unsigned char xdata sendBuf[16]; unsigned int bdata s_bit;
unsigned char idata checkoutError;//用于偶校验; unsigned char idata receTimeOut=0;//接收超时 unsigned char testCoil; //用于测试 位地址1 bit b232Send;
unsigned int testRegister; //用于测试 字址址16 unsigned char localAddr = 2; //单片机控制板的地址 unsigned char sendCount; //发送字节个数 unsigned char receCount; //接收到的字节个数 unsigned char sendPosi; //发送位置 unsigned int get_Reg(unsigned int m);
void set_Reg(unsigned int m,unsigned int tempData); void set_Coi(unsigned int m,unsigned int s); unsigned int get_Coi(unsigned int m); extern unsigned int xdata Data_tab[20]; /* CRC 高位字节值表 */
const unsigned char 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, 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,
38
…… 此处隐藏:983字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




