MSP430WARE++的使用3:modbus模块的调用方法
本文将介绍modbus模块驱动程序的调用方法。
1、硬件原理图
/V111a7Bl0251Ar/UuA1Xjks5S.*LFtPgMTou7DDjLh.lL3QkrGEj*6mW7c!/o/dCsAAAAAAAAA&ek=1&kp=1&pt=0&bo=kQI8AZECPAEDACU!&su=1174392641&sce=0-12-12&rf=2-9" style="margin:0px; padding:0px; border-width:0px; border-style:none; vertical-align:top; width:500px; height:241px; float:none">
2、用法
选中modbus目录,右键点击“Exclude from Build”就可以。
/V111a7Bl0251Ar/z4EI36T7.fbfH0wT0ibdRR.xEPMyAqelWUq20DZjhXA!/o/dBQAAAAAAAAA&ek=1&kp=1&pt=0&bo=pwDGAKcAxgADACU!&su=1174445521&sce=0-12-12&rf=2-9" style="margin:0px; padding:0px; border-width:0px; border-style:none; vertical-align:top; width:167px; height:198px">
b、使能外设
PROTOCOL_MODBUS1
c、驱动程序的配置。
能够对下列选项进行设置,解释例如以下:
MODBUS_REG_INPUT_START:输入寄存器起始地址
MODBUS_REG_INPUT_NREGS:输入寄存器个数(双字节)
MODBUS_REG_HOLDING_START:保持寄存器起始地址
MODBUS_REG_HOLDING_NREGS:保持寄存器个数(双字节)
MB_ASCII(ASCII模式)
MB_TCP(TCP模式)
MODBUS_SLAVE_ID:从地址
MODBUS_BAUD:波特率
MODUBS_PARITY:效验位。能够为MB_PAR_NONE(无效验)
MB_PAR_ODD(奇效验)
MB_PAR_EVEN(偶效验)
#define MODBUS_REG_INPUT_START 1
MODBUS_REG_INPUT_NREGS (2
* 16)
#define MODBUS_REG_HOLDING_START 1
* 64)
#define MODBUS_MODE MB_RTU
#define MODUBS_PARITY MB_PAR_NONE
d、类的派生
已在PTL层设置完成,不须要派生。
e、对象的声明
已在PTL层声明完成,不须要声明。
f、其他操作
modbus模块自身占用了UART0和TIMERA。使用时,应在config.hpp中进行屏蔽,源程序例如以下:
#define INTERNAL_PERIPHERAL_CLOCK_MODE
1
#define INTERNAL_PERIPHERAL_UART0_MODE
0
#define INTERNAL_PERIPHERAL_TIMERA_MODE
0
g、调用方法
在主循环的第1行调用,例如以下语句:
Target.PTL.Modbus.Dispose();
可在主循环的任何位置,改变输入寄存器或者保持寄存器的数值。以备主modbus调用。例子代码例如以下:
while(1)
(Target.PTL.Modbus.flag == True)
= False;
成员变量:
uint16 usRegInputStart; 输入寄存器起始地址
usRegInputBuf[MODBUS_REG_INPUT_NREGS]; 输入寄存器缓冲Buffer
usRegHoldingStart; 保持寄存器起始地址
usRegHoldingBuf[MODBUS_REG_HOLDING_NREGS]; 保持寄存器缓冲Buffer
成员函数
CModbus(void); 构造函数
在主循环的第1行调用
注1:本文中演示样例代码用绿色标注。
注2:本文中与使用密切相关的成员变量与成员函数用红色标注。
MSP430WARE++的使用3:modbus模块的调用方法的更多相关文章
- discuz x3在DIY模块中调用伪静态不成功,显示动态链接的解决办法
discuz x3在DIY模块中调用伪静态不成功,显示动态链接,然而其他的链接正常显示伪静态. 后台启用伪静态后,发现论坛版块.帖子点击链接,伪静态正常显示,然后在门户首页DIY显示的帖子,点进去后发 ...
- Node.js(window)基础(2)——node环境下的模块,模块间调用
参考:http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143450241959 ...
- [笔记]Python中模块互相调用的例子
python中模块互相调用容易出错,经常是在本地路径下工作正常,切换到其他路径来调用,就各种模块找不到了. 解决方法是通过__file__定位当前文件的真实路径,再通过sys.path.append( ...
- Python引用多个模块,调用模块中的函数时,要注意的地方
转自:http://blog.csdn.net/yjk13703623757/article/details/70237463 python模块是”从下到上”导入(import)的. 例如: a.py ...
- day4-不同目录间模块的调用
1.前言 上文已经讲述了软件项目开发目录规范的若干事项,现在问题来了,我们遵循了项目目录设计规范,不同目录下设计了不同的函数和模块,怎么实现对这些模块的调用,使其为项目整体所用呢?本章节讲述的绝对路径 ...
- python开发调用基础:模块的调用&制作包&软件开发规范
一,包的调用 #!/usr/bin/env python #_*_coding:utf-8_*_ #调用 glance[1..4]\api\policy.py 路径 # policy.py 内容 # ...
- Javascript模块化编程(一)模块的写法最佳实践六、输入全局变量 独立性是模块的重要特点,模块内部最好不与程序的其他部分直接交互。 为了在模块内部调用全局变量,必须显式地将其他变量输入模块。
Javascript模块化编程,已经成为一个迫切的需求.理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块但是,Javascript不是一种模块化编程语言,它不支持类clas ...
- MSP430WARE++的使用2:RSP1 driver的调用方法
MSP430WARE是一套基于C++语言的开源的MSP430层次化软件架构,支持多种外设.本文将介绍雷达測速芯片RSP1驱动程序的调用方法. 1.硬件原理图 採用下图所看到的 ...
- Python_selenium PO模式下 Tesecase 的相同执行代码做成selenium_base_case公共模块及调用
作用: PO模式下 Tesecase 的相同执行代码做成selenium_base_case公共模块及调用,提高代码简洁度,实现同样效果. 框架结构: 代码简单实践: common模块下 seleni ...
随机推荐
- luogu P1126 机器人搬重物
题目描述 机器人移动学会(RMI)现在正尝试用机器人搬运物品.机器人的形状是一个直径1.6米的球.在试验阶段,机器人被用于在一个储藏室中搬运货物.储藏室是一个N*M的网格,有些格子为不可移动的障碍.机 ...
- [BZOJ 1228] E&D
Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1228 Solution: 感觉自己对博弈论的理论一直了解得不够透彻 一篇讲原理的文章:S ...
- python3开发进阶-Django视图(View)的常见用法
阅读目录 简述Django的View(视图) CBV和FBV Request对象和Response对象 Django组件(render,redirect)详解 一.简述Django的View(视图) ...
- linux+iptables搭建网关服务器
公司购买的一批云服务器只带内网,配置了一个负载均衡器(lb),这批服务器通过lb可以对外提供服务,但是这批服务器不能主动连接外网,例如使用wget下载文件,或者curl访问ttlsa.com站点. 额 ...
- Objective-C:Objective-C 和 Core Foundation 对象相互转换的内存管理
Objective-C 和 Core Foundation 对象相互转换的内存管理 iOS允许Objective-C 和 Core Foundation 对象之间可以轻松的转换,拿 NSString ...
- JavaScript获取table中某一列的值的方法
1.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...
- maven的安装和eclipse的配置以及构建mahout基本项目
maven介绍在此略过 下载地址: 点击打开链接 windows下载xxx-bin.zip文件 linux下载xxx-bin.tar.gz 这里以windows为例 下载完成直接解压到一个目录下 计算 ...
- jQuery 全选 正反选
<script src="http://code.jquery.com/jquery-1.4.4.min.js" type="text/javascript&quo ...
- [Flutter] Creating & Updating State in a Flutter Application
To create a Stateful widget: 1. Create a StatefulWidget 2. Create a State class SGreeting extends St ...
- 倍福TwinCAT(贝福Beckhoff)应用教程13.1 TwinCAT控制松下伺服 NC高级
本节主要演示了使用自定义函数实现电机的运动(梯形曲线和S曲线都有实现),这里的JOG+和JOG-,针对单个关节实现了PTP的运动(跟贝福的MoveAbsolute功能块实现效果一致),在此没有介绍运动 ...