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 ...
随机推荐
- Servlet 3.1 规范
在线版目录 Servlet3.1规范翻译——前言 Servlet3.1规范翻译——概览 Servlet3.1规范翻译——Servlet Context Servlet3.1规范翻译——Response ...
- Oracle 后台进程 详细说明
一. 进程概述 先来看一下Oracle 11g 的架构图. 看起来比较模糊,我已经上传到了csdn 的下载. 是个pdf 文件, 2m 多. 那个看起来比较清楚. 也对每个进程做了解释. 下载地址:O ...
- 【后缀数组】poj3693 Maximum repetition substring
sa在清空方面存在一些奇怪的问题……难以ac.(留坑?)
- 1.3(学习笔记)Servlet获取表单数据
一.Servlet获取表单数据 表单提交数据经由Servlet处理,返回一个处理结果显示在页面上, 那么如何获取表单提交的参数进出相应的处理呢? 主要用到以下方法: String getParame ...
- 5.4 集合的排序(Java学习笔记)(Collections.sort(),及Arrays.sort()底层分析)
1.Comparable接口 这个接口顾名思义就是用于排序的,如果要对某些对象进行排序,那么该对象所在的类必须实现 Comparabld接口.Comparable接口只有一个方法CompareTo() ...
- Spring IOC 中三种注入方式
项目错误知识点记录 正文 最近在项目的时候,用到Spring框架,Spring框架提供了一种IOC的自动注入功能,可以很轻松的帮助我们创建一个Bean,这样就省的我们四处写new Object()这样 ...
- 线程协作-Semaphore并发限制
Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源.
- 【java】File的使用:将字符串写出到本地文件,大小0kb的原因
实现方法: 暂时写一种方法,将字符串写出到本地文件,以后可以补充更多种方法: public static void main(String[] args) { /** * ============== ...
- nodeJs+socket.io
1.先安装npm和node 2.安装socket.io npm install socket.io 3.html <!DOCTYPE html> <html lang="e ...
- python获取系统信息,
1 操作系统系统综合信息cur_sysinfo=platform.uname()浏览器信息cur_browserinfo=self.driver.capabilities['version']浏览器新 ...