-
大小: 5.17MB文件类型: .zip金币: 2下载: 0 次发布日期: 2023-08-17
- 语言: 其他
- 标签: FreeModbus Slave
资源简介
移植Freemodbus V1.5.0基于TI DK-TM4C129X 开发板。开发环境Keil MDK5.10

代码片段和文件信息
/* ----------------------- Modbus includes ----------------------------------*/
#include “mb.h“
#include “mbport.h“
#include “HAL_Interface.h“
#include “mbutils.h“
/* ----------------------- Defines ------------------------------------------*/
#define REG_INPUT_START 0
#define REG_INPUT_NREGS 4
/* ----------------------- Static variables ---------------------------------*/
static USHORT usRegInputStart = REG_INPUT_START;
static USHORT usRegInputBuf[REG_INPUT_NREGS] = {0x10x20x30x4};
//
#define REG_HOLDING_START 0
#define REG_HOLDING_NREGS 10
static USHORT usRegHoldingStart = REG_HOLDING_START;
static USHORT usRegHoldingBuf[REG_HOLDING_NREGS] = {0x90x80x70x60x50x40x30x20x10x0};
//Coils
#define REG_COILS_START 0
#define REG_COILS_SIZE 16
static unsigned char ucRegCoilsBuf[REG_COILS_SIZE / 8] = {0xA50x5A};
//Read Discrete Inputs
#define DISCRETE_INPUT_START 100
#define DISCRETE_INPUT_SIZE 24
static unsigned char ucDiscreteInputBuf[DISCRETE_INPUT_SIZE / 8] = {0xA50x5A0xAA};
/* ----------------------- Start implementation -----------------------------*/
int
main( void )
{
const UCHAR ucSlaveID[] = { 0xAA 0xBB 0xCC };
eMBErrorCode eStatus;
Drv_SysClock_Init();
eStatus = eMBInit( MB_RTU 0x0A 0 115200 MB_PAR_EVEN ); //0x0A is slave address
eStatus = eMBSetSlaveID( 0x34 TRUE ucSlaveID 3 );
/* Enable the Modbus Protocol Stack. */
eStatus = eMBEnable( );
for( ;; )
{
( void )eMBPoll( );
/* Here we simply count the number of poll cycles. */
//usRegInputBuf[0]++;
}
}
eMBErrorCode
eMBRegInputCB( UCHAR * pucRegBuffer USHORT usAddress USHORT usNRegs ) //usAddress has add 1.
{
eMBErrorCode eStatus = MB_ENOERR;
int iRegIndex;
usAddress = usAddress -1;
if( ( usAddress >= REG_INPUT_START )
&& ( usAddress + usNRegs <= REG_INPUT_START + REG_INPUT_NREGS ) )
{
iRegIndex = ( int )( usAddress - usRegInputStart );
while( usNRegs > 0 )
{
*pucRegBuffer++ =
( unsigned char )( usRegInputBuf[iRegIndex] >> 8 );
*pucRegBuffer++ =
( unsigned char )( usRegInputBuf[iRegIndex] & 0xFF );
iRegIndex++;
usNRegs--;
}
}
else
{
eStatus = MB_ENOREG;
}
return eStatus;
}
eMBErrorCode
eMBRegHoldingCB( UCHAR * pucRegBuffer USHORT usAddress USHORT usNRegs
eMBRegisterMode eMode )
{
eMBErrorCode eStatus = MB_ENOERR;
int iRegIndex;
usAddress = usAddress - 1;
if( ( usAddress >= REG_HOLDING_START ) &&
( usAddress + usNRegs <= REG_HOLDING_START + REG_HOLDING_NREGS ) )
{
iRegIndex = ( int )( usAddress - usRegHoldingStart );
switch ( eMode )
{
/* Pass current register values to the protoc
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-06-26 15:45 TM4C129X\
文件 27 2014-06-07 15:45 TM4C129X\clear.bat
目录 0 2014-06-26 15:45 TM4C129X\debug\
文件 127187 2014-06-21 16:04 TM4C129X\debug\adc.crf
文件 509 2014-06-21 16:04 TM4C129X\debug\adc.d
文件 126288 2014-06-21 16:04 TM4C129X\debug\adc.o
文件 68936 2014-06-21 16:04 TM4C129X\debug\aes.crf
文件 548 2014-06-21 16:04 TM4C129X\debug\aes.d
文件 75740 2014-06-21 16:04 TM4C129X\debug\aes.o
文件 132243 2014-06-21 16:04 TM4C129X\debug\can.crf
文件 551 2014-06-21 16:04 TM4C129X\debug\can.d
文件 128668 2014-06-21 16:04 TM4C129X\debug\can.o
文件 29595 2014-06-21 16:04 TM4C129X\debug\comp.crf
文件 478 2014-06-21 16:04 TM4C129X\debug\comp.d
文件 41676 2014-06-21 16:04 TM4C129X\debug\comp.o
文件 3699 2014-06-21 16:04 TM4C129X\debug\cpu.crf
文件 137 2014-06-21 16:04 TM4C129X\debug\cpu.d
文件 11856 2014-06-21 16:04 TM4C129X\debug\cpu.o
文件 10804 2014-06-21 16:04 TM4C129X\debug\crc.crf
文件 373 2014-06-21 16:04 TM4C129X\debug\crc.d
文件 22756 2014-06-21 16:04 TM4C129X\debug\crc.o
文件 30510 2014-06-21 16:04 TM4C129X\debug\des.crf
文件 465 2014-06-21 16:04 TM4C129X\debug\des.d
文件 43364 2014-06-21 16:04 TM4C129X\debug\des.o
文件 122063 2014-06-21 16:04 TM4C129X\debug\eeprom.crf
文件 649 2014-06-21 16:04 TM4C129X\debug\eeprom.d
文件 117892 2014-06-21 16:04 TM4C129X\debug\eeprom.o
文件 119555 2014-06-21 16:04 TM4C129X\debug\emac.crf
文件 574 2014-06-21 16:04 TM4C129X\debug\emac.d
文件 123100 2014-06-21 16:04 TM4C129X\debug\emac.o
文件 122083 2014-06-08 16:15 TM4C129X\debug\epi.crf
............此处省略315个文件信息
- 上一篇:os课程设计 操作系统课程设计
- 下一篇:异常检测与机器学习
相关资源
- FreeModbus_Slave+STM32F407+USART2代码亲测可
- STM32F103移植FreeModbus实现modbus主机.zi
- ifenslave_2.9_all.deb
- USB2.0芯片cy68013高速bulk传输slave fifo模
- Profibus master+slave+VSPD 测试软件
- ModbusTools_破解版
- FreeModbus_For_STM32_USART1_RS485移植分享
- modbus_poll和modbus_slave_64bit.rar
- MbPoll_v7.1.0 MbSlave_v6.2.0
- Modbus Slave破解版
- STM32F103ZET6_FreeModbus移植
- FPGA+USB68013+SLAVEFIFO+SDRAM+FIFO
- freemodbus v1.6最新版本
- FreeRTOS和FreeMODBUS移植到STM32F407傻瓜教
- Modbus Poll、Modbus Slave和Virtual Serial Po
- EtherCAT Slave Stack Code Tool
- EtherCATSlaveStackCodeTool.rar
- FreeModbus V1.6
- modbus poll 9.4.0 & modbus slave7.3.0.rar
- modbus主从站设备modbus poll与modbus slav
- FreeModbus+RT-Thead+STM32+Master主机V1.1
- freemodbus RTU移植stm32过程代码
- ModbusSlave 7.0和ModbusPoll_7.0软件+注册码
- FreeModbus+RT-Thead+STM32
- i2c slave端verilog代码
- FreeModbus--RTU--Master+Slave--uCOSIII--STM32F
- 包含modbus从机和主机的程序
- slave fifo 上位机程序
- FreeModbusTCP STM32移植
- Modbus Poll V6.4+Modbus slave6.0+Virtual Seria
评论
共有 条评论