資源簡介
FreeMODBUS一個奧地利人寫的Modbus協議。它是一個針對嵌入式應用的一個免費(自由)的通用MODBUS協議的移植。Modbus是一個工業制造環境中應用的一個通用協議。Modbus通信協議棧包括兩層:Modbus應用層協議,該層定義了數據模式和功能;另外一層是網絡層。

代碼片段和文件信息
/*
?*?FreeModbus?Libary:?ARM7?Demo?Application
?*?Copyright?(C)?2006?Christian?Walter?
?*
?*?This?program?is?free?software;?you?can?redistribute?it?and/or?modify
?*?it?under?the?terms?of?the?GNU?General?Public?License?as?published?by
?*?the?Free?Software?Foundation;?either?version?2?of?the?License?or
?*?(at?your?option)?any?later?version.
?*
?*?This?program?is?distributed?in?the?hope?that?it?will?be?useful
?*?but?WITHOUT?ANY?WARRANTY;?without?even?the?implied?warranty?of
?*?MERCHANTABILITY?or?FITNESS?FOR?A?PARTICULAR?PURPOSE.??See?the
?*?GNU?General?Public?License?for?more?details.
?*
?*?You?should?have?received?a?copy?of?the?GNU?General?Public?License
?*?along?with?this?program;?if?not?write?to?the?Free?Software
?*?Foundation?Inc.?51?Franklin?St?Fifth?Floor?Boston?MA??02110-1301??USA
?*
?*?File:?$Id$
?*/
/*?-----------------------?System?includes?----------------------------------*/
#include?“assert.h“
/*?-----------------------?Platform?includes?--------------------------------*/
#include?“support/AT91SAM7X256.h“
#include?“support/lib_AT91SAM7X256.h“
#include?“FreeRTOS.h“
#include?“task.h“
#include?“queue.h“
/*?-----------------------?Modbus?includes?----------------------------------*/
#include?“mb.h“
/*?-----------------------?Defines?------------------------------------------*/
#define?REG_HOLDING_START???????????0x1000
#define?REG_HOLDING_NREGS???????????130
#define?REG_INPUT_START?????????????0x1000
#define?REG_INPUT_NREGS?????????????4
/*?-----------------------?Static?variables?---------------------------------*/
static?USHORT???usRegHoldingStart?=?REG_HOLDING_START;
static?USHORT???usRegHoldingBuf[REG_HOLDING_NREGS];
static?USHORT???usRegInputStart?=?REG_INPUT_START;
static?USHORT???usRegInputBuf[REG_INPUT_NREGS];
/*?-----------------------?Static?functions?---------------------------------*/
STATIC?void?????vModbusTask(?void?*pvParameters?);
STATIC?void?????vSetupHardware(?void?);
/*?-----------------------?Start?implementation?-----------------------------*/
int
main(?void?)
{
????vSetupHardware(??);
????(?void?)xTaskCreate(?vModbusTask?NULL?configMINIMAL_STACK_SIZE?NULL
?????????????????????????tskIDLE_PRIORITY?NULL?);
????vTaskStartScheduler(??);
????return?0;
}
static?void
vModbusTask(?void?*pvParameters?)
{
????int?????????????i;
????/*?Select?either?ASCII?or?RTU?Mode.?*/
????(?void?)eMBInit(?MB_RTU?0x0A?0?38400?MB_PAR_EVEN?);
????/*?Initialize?the?holding?register?values?before?starting?the
?????*?Modbus?stack
?????*/
????for(?i?=?0;?i?????{
????????usRegHoldingBuf[i]?=?(?unsigned?short?)i;
????}
????/*?Initialize?the?input?register?values?before?starting?the
?????*?Modbus?stack
?????*/
????for(?i?=?0;?i?????{
????????usRegInputBuf[i]?=?(?unsigned?short?)i;
????}
????/*?Enable?the?Modbus?Protocol?Stack.?*/
????(?void?)eMBEnable(??);
????for(?;;?)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1436??2018-09-14?04:03??freemodbus-v1.6\bsd.txt
?????文件??????14628??2018-09-14?04:03??freemodbus-v1.6\Changelog.txt
?????文件???????5634??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\demo.c
?????文件???????8756??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\demo.hzp
?????文件??????12695??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\demo.hzs
?????文件??????13219??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\croutine.c
?????文件??????26826??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\include\croutine.h
?????文件???????4984??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\include\FreeRTOS.h
?????文件??????11470??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\include\list.h
?????文件???????2988??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\include\portable.h
?????文件???????2979??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\include\portable.h.bak
?????文件???????2209??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\include\projdefs.h
?????文件??????16551??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\include\queue.h
?????文件??????10062??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\include\semphr.h
?????文件??????31687??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\include\task.h
?????文件???????7614??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\list.c
?????文件???????7975??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\portable\GCC\ARM7_AT91SAM7S\port.c
?????文件???????8771??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\portable\GCC\ARM7_AT91SAM7S\portISR.c
?????文件??????13238??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\portable\GCC\ARM7_AT91SAM7S\portmacro.h
?????文件???????4589??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\portable\MemMang\heap_1.c
?????文件???????9068??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\portable\MemMang\heap_2.c
?????文件???????2547??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\portable\MemMang\heap_3.c
?????文件??????32288??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\queue.c
?????文件??????63012??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOS\tasks.c
?????文件???????1585??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\FreeRTOSConfig.h
?????文件???????2324??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\port\port.h
?????文件???????3577??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\port\portevent.c
?????文件???????3422??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\port\portother.c
?????文件???????7732??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\port\portserial.c
?????文件???????2738??2018-09-14?04:03??freemodbus-v1.6\demo\AT91SAM7X_ROWLEY\port\porttimer.c
............此處省略1304個文件信息
- 上一篇:簡易電子琴設計
- 下一篇:基于STM32F4控制步進電機代碼
評論
共有 條評論