当前位置: 首页 > news >正文

嵌入式学习(45)-基于STM32F407Hal库的Modbus Slave从机程序

一、概述

上篇文章描述了Modbus Master的程序,本篇讲述Modbus Slave

嵌入式学习(44)-基于STM32F407Hal库的Modbus Master主机程序。-CSDN博客

二、应用

void Modbus_Slave_Function03()
{static    uint16_t RegAddr, Reglen, crc,SlaveAddr;static    uint8_t i, j;SlaveAddr=Modbus.Rebuf[0];//获取从机地址//得到要读取寄存器的首地址RegAddr = Modbus.Rebuf[2] * 256 + Modbus.Rebuf[3]; //读取的首地址//得到要读取寄存器的数据长度Reglen = Modbus.Rebuf[4] * 256 + Modbus.Rebuf[5]; //读取的寄存器个数//发送回应数据包i = 0;Modbus.Txbuf[i++] = Modbus.SlaveAddr;      //ID号:发送本机设备地址Modbus.Txbuf[i++] = 0x03;              //发送功能码Modbus.Txbuf[i++] = ((Reglen * 2) % 256); //返回字节个数for (j = 0; j < Reglen; j++)             //返回数据{//reg是提前定义好的16位数组(模仿寄存器)Modbus.Txbuf[i++] = Reg[RegAddr + j] / 256; //高位数据Modbus.Txbuf[i++] = Reg[RegAddr + j] % 256; //低位数据}crc = Modbus_CRC16(Modbus.Txbuf, i);   //计算要返回数据的CRCModbus.Txbuf[i++] = crc / 256; //校验位高位Modbus.Txbuf[i++] = crc % 256; //校验位低位//数据包打包完成// 开始返回Modbus数据
//	RS485_TX_ENABLE;//这是开启485发送Modbus_rs485_send_data(Modbus.Txbuf,i);			
void Modbus_Slave_Function06(void)
{static    uint16_t RegAddr, Reglen, crc,SlaveAddr,Data;static    uint8_t i, j;RegAddr = Modbus.Rebuf[2] * 256 + Modbus.Rebuf[3]; //得到要修改的地址Data = Modbus.Rebuf[4] * 256 + Modbus.Rebuf[5]; //修改后的值(要写入的数据)Reg[RegAddr] = Data; //修改本设备相应的寄存器//以下为回应主机i = 0;Modbus.Txbuf[i++] = Modbus.SlaveAddr; //本设备地址Modbus.Txbuf[i++] = 0x06;      //功能码Modbus.Txbuf[i++] = RegAddr / 256; //写入的地址Modbus.Txbuf[i++] = RegAddr % 256;Modbus.Txbuf[i++] = Data / 256; //写入的数值Modbus.Txbuf[i++] = Data % 256;crc = Modbus_CRC16(Modbus.Txbuf, i); //获取crc校验位Modbus.Txbuf[i++] = crc / 256; //crc校验位加入包中Modbus.Txbuf[i++] = crc % 256;Modbus_rs485_send_data(Modbus.Txbuf,i);	}

三、参考代码

STM32F407基于Hal库实现ModbusSlave程序资源-CSDN下载

http://www.dtcms.com/a/403905.html

相关文章:

  • 【字符串算法集合】KMP EXKMP Manacher Trie 树 AC 自动机
  • 网站是哪家公司开发的中山网站建设文化价位
  • 织梦网站如何备份教程企业网站建设公司网络
  • 杭州的网站建设公司4s店网站建设方案
  • 如果在自己电脑上运行,没有问题。但是移植到工控机,有问题
  • 网站建设计划方案中国著名的个人网站
  • 漫谈<爬虫与反爬的斗争>之反爬技术全景综述
  • @WebFilter 过滤器的执行顺序
  • 唐山建站方案七台河新闻综合频道直播
  • webpack library
  • 网站如何做背景音乐苏州集团网站建设
  • 建设工程招聘信息网站微信pc版
  • windows系统怎么做ppt下载网站永康外贸网站建设
  • 人工设计图像特征
  • 网站抓取qqwordpress 菜单 导航
  • centos网卡设置问题
  • springboot 自定义注解记录接口访问日志表
  • 在JavaScript中,每句结尾是否加分号
  • 申请免费网站公司wordpress+任意下载
  • 建立网站的条件网站建设拾金手指下拉二一
  • MS1100甲醛传感器详解(STM32)
  • CMakeLists.txt语法(一)
  • 东莞公司网站建设公司我的长沙app
  • Maven 依赖管理与版本优化
  • 网站后台登录界面下载门户网站开发的背景和意义
  • 网站备案必须做前置审批吗河南建设工程信息网官网洛阳至信阳省道
  • 负载均衡式的在线OJ项目编写(一)
  • SQL-视图
  • 网站备案 链接成都市成华区建设局网站
  • 【数据结构前置知识】集合框架