1. 程式人生 > >MSP430WARE++的使用3:modbus模塊的調用方法

MSP430WARE++的使用3:modbus模塊的調用方法

tails 更改 protocol usr 調用 gb2 targe 文件組 splay

MSP430WARE++的使用3:modbus模塊的調用方法 MSP430WARE是一套基於C++語言的開源的MSP430層次化軟件架構,支持多種外設。

本文將介紹modbus模塊驅動程序的調用方法。



1、硬件原理圖

使用modbus模塊驅動程序須要與MSP430單片機的UART0port相連接 技術分享
2、用法 a、增加驅動程序
選中modbus
目錄,右鍵點擊“Exclude from Build”就可以。 modbus驅動程序由多個個文件組成。例如以下圖所看到的。當中RSP1_config.hpp為RSP1的配置文件。
RSP1.cpp為RSP1類的源程序,RSP1.hpp為RSP1類的頭文件。 技術分享

b、使能外設 在config.hpp中使能外設modbus,其源程序例如以下: #define PROTOCOL_MODBUS1

c、驅動程序的配置
能夠對下列選項進行設置,解釋例如以下:
MODBUS_REG_INPUT_START:輸入寄存器起始地址
MODBUS_REG_INPUT_NREGS:輸入寄存器個數(雙字節)
MODBUS_REG_HOLDING_START:保持寄存器起始地址
MODBUS_REG_HOLDING_NREGS:保持寄存器個數(雙字節)
MODBUS_MODE:模式,能夠為MB_RTU(二進制模式)
MB_ASCII(ASCII模式
MB_TCP(TCP模式)
MODBUS_SLAVE_ID:從地址
MODBUS_BAUD:波特率
MODUBS_PARITY:效驗位。能夠為MB_PAR_NONE(無效驗)
MB_PAR_ODD(奇效驗)
MB_PAR_EVEN(偶效驗) 依據項目的實際需求,更改modbus_config.hpp配置文件,其更改後的源程序例如以下:
#define MODBUS_REG_INPUT_START 1 #define MODBUS_REG_INPUT_NREGS (2 * 16)
#define MODBUS_REG_HOLDING_START 1 #define MODBUS_REG_HOLDING_NREGS (2 * 64)
#define MODBUS_MODE MB_RTU #define MODBUS_SLAVE_ID1 #define MODBUS_BAUD 115200 #define MODUBS_PARITY MB_PAR_NONE

d、類的派生
已在PTL層設置完成,不須要派生。



e、對象的聲明
已在PTL層聲明完成,不須要聲明。



f、其他操作
modbus模塊自身占用了UART0和TIMERA。使用時,應在c
onfig.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.Dispose(); if (Target.PTL.Modbus.flag == True) { Target.PTL.Modbus.flag = False; //收到寫保持寄存器數據
} //讀保持寄存器 //讀輸入寄存器
//餵狗 Target.HAL.WatchDog.Feed(); }

3、CModbus類成員變量和成員函數的說明 成員變量:
uint16 usRegInputStart; 輸入寄存器起始地址
uint16 usRegInputBuf[MODBUS_REG_INPUT_NREGS]; 輸入寄存器緩沖Buffer uint16 usRegHoldingStart; 保持寄存器起始地址 uint16 usRegHoldingBuf[MODBUS_REG_HOLDING_NREGS]; 保持寄存器緩沖Buffer
成員函數
CModbus(void); 構造函數 void Dispose(void); 在主循環的第1行調用
註1:本文中演示樣例代碼用綠色標註。


註2:本文中與使用密切相關的成員變量與成員函數用紅色標註。


原創性文章。轉載請註明出處 http://user.qzone.qq.com/2756567163

MSP430WARE++的使用3:modbus模塊的調用方法