移植modbus通讯协议232转换485
232的modbus协议该位485时,需要注意:
1.portserial.c中的基本配置函数
2.中断中的配置函数
3.最重要的一点,mbrtu.c中(这个是重点)
eMBRTUSend( UCHAR ucSlaveAddress, const UCHAR * pucFrame, USHORT usLength )
{
eMBErrorCode eStatus = MB_ENOERR;
USHORT usCRC16;
ENTER_CRITICAL_SECTION( );/* Check if the receiver is still in idle state. If not we where to* slow with processing the received frame and the master sent another* frame on the network. We have to abort sending the frame.*/
if( eRcvState == STATE_RX_IDLE )
{/* First byte before the Modbus-PDU is the slave address. */pucSndBufferCur = ( UCHAR * ) pucFrame - 1;usSndBufferCount = 1;/* Now copy the Modbus-PDU into the Modbus-Serial-Line-PDU. */pucSndBufferCur[MB_SER_PDU_ADDR_OFF] = ucSlaveAddress;usSndBufferCount += usLength;/* Calculate CRC16 checksum for Modbus-Serial-Line-PDU. */usCRC16 = usMBCRC16( ( UCHAR * ) pucSndBufferCur, usSndBufferCount );ucRTUBuf[usSndBufferCount++] = ( UCHAR )( usCRC16 & 0xFF );ucRTUBuf[usSndBufferCount++] = ( UCHAR )( usCRC16 >> 8 );/* Activate the transmitter. */eSndState = STATE_TX_XMIT;//485通讯与2332通讯的区别,必须加。否则通讯失败......................................................................vMBPortSerialEnable( FALSE, TRUE );//启动第一次发送,这样才可以进入发送完成中断xMBPortSerialPutByte( ( CHAR )*pucSndBufferCur );pucSndBufferCur++; /* next byte in sendbuffer. */usSndBufferCount--;//485通讯与2332通讯的区别,必须加。否则通讯失败......................................................................vMBPortSerialEnable( FALSE, TRUE );
}
else
{eStatus = MB_EIO;
}
EXIT_CRITICAL_SECTION( );
return eStatus;
}
移植modbus通讯协议232转换485相关推荐
- STM32移植modbus通讯协议简明教程
目录 一.本文讨论内容 二.工具与源码 三.Modbus概述 四.Modbus-RTU通讯协议 五.完成Modbus输入输出代码 六.完成Modbus逻辑功能 七.测试与验证 一.本文讨论内容 本文简 ...
- 485之modbus通讯协议学习笔记
485之modbus通讯协议学习笔记 这里主要探讨两个寄存器 03 读保持寄存器 04读输入寄存器 输入寄存器其中的温度值和湿度值分别各占两个字节,一个字节八位使用十六进制00 01表示两个字节的寄存 ...
- modbus通讯协议详解
1.Modbus协议简介 Modbus协议是一种广泛应用于当今工业控制领域的通用通信协议.通过此协议,控制器相互之间.或者控制器经由网路(如以太网)可以和其他设备之间进行通信.Modbus协议使用的是 ...
- modbus通讯协议详解(转载)
转载自:https://www.cnblogs.com/The-explosion/p/11512677.html modbus通讯协议详解 1.Modbus 协议简介 Modbus协议是一种已广泛 ...
- 基于modbus协议的工业自动化网络规范_工控学堂:解读Modbus通讯协议「宜收藏」...
作为工控人,Modbus通讯协议想必都不陌生,Modbus通讯协议可以说是工业自动化领域应用最为广泛的通讯协议,因为他的开放性.可扩充性和标准化使他成为通用工业标准. 1979年施耐德电气制定了一个用 ...
- Modbus通讯协议
https://baike.baidu.com/item/Modbus%E9%80%9A%E8%AE%AF%E5%8D%8F%E8%AE%AE/5972462?fromtitle=ModBus& ...
- modbus rtu与计算机通讯,Modbus通讯协议原来是这么回事!看完秒懂了
原标题:Modbus通讯协议原来是这么回事!看完秒懂了 [www.gkwo.net]工程师必备网站 导语:ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用 ...
- 经过整理的Modbus通讯协议详解(一)
Modbus通讯协议简介 Modbus协议 Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modb ...
- MODBUS通讯协议及编程【一】
一.Modbus 协议简介 Modbus 协议是应用于电子控制器上的一种通用语言.通过此协议,控制器相互之间.控制器经由网络(例如以太网)和其它设备之间可以通信.它已经成为一通用工业标准.有了它, ...
最新文章
- Button的五种点击事件
- 我学习Python的三个神级网站
- LeetCode 171 Excel Sheet Column Number
- 自然语言处理 —— 2.5 学习词嵌入
- [SCM]源码管理 - SVN的备份和还原
- hdu5141 线段树
- 时间日期、查找、压缩类
- Go语言的指针的一些测试
- 未来教育 ***java二级考试题库第二十五套错题***
- 《自己动手写操作系统》第二章——Bochs调试及相关仿真工具的使用方法
- JDK自带javap命令反编译class文件和Jad反编译class文件(推荐使用jad)
- 三维实景模型制作,360度全景展示
- 计算机系统硬盘内存主频,内存时序和频率_内存硬盘-中关村在线
- UNICODE,GBK,UTF-8区别
- App进行内测麻烦吗?如何进行App内测?
- 关于对音频的合并,左右声道的分离以及播放的操作
- 【软件测试】自动化测试战零基础教程——Python自动化从入门到实战(一)
- mysql 视图 中文_Mysql视图-WEB资讯专栏-DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录....
- 【ROS】移动机器人导航仿真(2)——SLAM(gmapping)
- GeneXus笔记Excel导入
热门文章
- 2015开发工具及服务年度大奖评选获奖名单出炉
- 北大工学院计算机考研,2021-2022北京大学工学院机械专硕考研复习经验贴
- MATLAB窗函数法设计FIR 数字滤波器
- scom2012 监控linux,System center 2012 R2 实战六、SCOM2012R2介绍及安装
- 老司机带你玩转git (四) git的协同合作
- 将SpringBoot项目制作成Docker镜像并在本机访问
- 死锁(一)——这是一个“鸡生蛋,蛋生鸡”的关系
- 史上最全的磨床加工问题解决方案
- 戴尔: 这一次都用了什么技术突破创新?
- 【观察】新基建下的智慧城市新样板,智慧滨海背后的三重新价值