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 ...
随机推荐
- Android中的MVC,MVP和MVVM
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha MVC,MVP,MVVM的区别 #MVC 软件可以分为三部分 视图(View):用户界面 ...
- Java异常处理机制及两种异常的区别
java异常处理机制主要依赖于try,catch,finally,throw,throws五个关键字. try 关键字后紧跟一个花括号括起来的代码块,简称try块.同理:下面的也被称为相应的块. ...
- Java里的浅复制与深复制
1.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅复制仅仅复制所考虑的对象,而不 复制它所引用的对象. ...
- 1.1(学习笔记)Servlet简介及一个简单的实例
一.Servlet简介 Servlet是使用Java语言编写的服务器端程序,可以生产动态的Web界面. 主要运行在服务器端,Servlet可以方便的处理客户端传来的HTTP请求,并返回一个响应. 二. ...
- CSS box-flex属性,然后弹性盒子模型简介(转)
一.淡淡的开头语 昨天趁着不想工作的时间间隙闲逛24ways,在My CSS Wish List一文中,见到了个新鲜的CSS属性,就是题目中的box-flex,以前没有见过,顿生疑惑,不知是骡子还是马 ...
- URL 和URI的区别
1.统一资源标志符URI就是在某一规则下能把一个资源独一无二地标识出来. URL:(Uniform/Universal Resource Locator 的缩写,统一资源定位符). URI:(Unif ...
- 更新xcode后插件失效问题——不针对特定版本的通用解决方法
一.Xcode更新后插件失效的原理 1.每次更新Xcode后插件都会失效,其实插件都还在这个目录好好的躺着呢: ~/Library/Application Support/Developer/Shar ...
- Coherence装载数据的研究-PreloadRequest
最近给客户准备培训,看到Coherence可以通过三种方式批量加载数据,分别是: Custom application InvocableMap - PreloadRequest Invocation ...
- Linux下获取本机IP地址的代码
Linux下获取本机IP地址的代码,返回值即为互联网标准点分格式的字符串. #define ETH_NAME "eth0" //获得本机IP地址 char* GetLocalAdd ...
- How Tomcat Works 读书笔记 八 加载器 上
Java的类加载器 具体资料见 http://blog.csdn.net/dlf123321/article/details/39957175 http://blog.csdn.net/dlf1233 ...