SimpleModbusRTUPacket
函数
Modbus.c 文件参考

Modbus RTU模式下数据包处理C源代码 更多...

#include "Modbus.h"

浏览源代码.

函数

bool Modbus_Payload_Check_CRC (uint8_t *payload, size_t payload_length)
 检查一帧数据的crc 更多...
 
bool Modbus_Payload_Append_CRC (uint8_t *payload, size_t payload_length)
 在数据帧末尾的添加crc校验 更多...
 
bool Modbus_Slave_Parse_Input (modbus_slave_context_t *ctx, uint8_t *input_data, size_t input_data_length, uint8_t *buff, size_t buff_length)
 Modbus从机解析输入。 当从机接收到一帧数据后,调用此函数。 此函数会自动调用相关回调函数完成Modbus输出。 更多...
 
bool Modbus_Master_Read_OX (modbus_master_context_t *ctx, uint16_t start_addr, bool *data, size_t number, uint8_t *buff, size_t buff_length)
 Modbus主机读取输出线圈 更多...
 
bool Modbus_Master_Read_IX (modbus_master_context_t *ctx, uint16_t start_addr, bool *data, size_t number, uint8_t *buff, size_t buff_length)
 Modbus主机读取输入点 更多...
 
bool Modbus_Master_Read_Hold_Register (modbus_master_context_t *ctx, uint16_t start_addr, uint16_t *data, size_t number, uint8_t *buff, size_t buff_length)
 Modbus主机读取保持寄存器 更多...
 
bool Modbus_Master_Read_Input_Register (modbus_master_context_t *ctx, uint16_t start_addr, uint16_t *data, size_t number, uint8_t *buff, size_t buff_length)
 Modbus主机读取输入寄存器 更多...
 
bool Modbus_Master_Write_OX (modbus_master_context_t *ctx, uint16_t start_addr, bool *data, size_t number, uint8_t *buff, size_t buff_length)
 Modbus主机写输出线圈 更多...
 
bool Modbus_Master_Write_Hold_Register (modbus_master_context_t *ctx, uint16_t start_addr, uint16_t *data, size_t number, uint8_t *buff, size_t buff_length)
 Modbus主机写保持寄存器 更多...
 

详细描述

Modbus RTU模式下数据包处理C源代码

作者
何亚红
版本
20220203
日期
2022

在文件 Modbus.c 中定义.

函数说明

◆ Modbus_Master_Read_Hold_Register()

bool Modbus_Master_Read_Hold_Register ( modbus_master_context_t ctx,
uint16_t  start_addr,
uint16_t *  data,
size_t  number,
uint8_t *  buff,
size_t  buff_length 
)

Modbus主机读取保持寄存器

参数
ctx上下文指针,需要自行定义
start_addr起始地址(寻址地址)
data待读取的数据指针
number待读取数据长度
buff缓冲,用于发送和接收数据,尽量大
buff_length缓冲长度
返回
是否成功执行

在文件 Modbus.c555 行定义.

◆ Modbus_Master_Read_Input_Register()

bool Modbus_Master_Read_Input_Register ( modbus_master_context_t ctx,
uint16_t  start_addr,
uint16_t *  data,
size_t  number,
uint8_t *  buff,
size_t  buff_length 
)

Modbus主机读取输入寄存器

参数
ctx上下文指针,需要自行定义
start_addr起始地址(寻址地址)
data待读取的数据指针
number待读取数据长度
buff缓冲,用于发送和接收数据,尽量大
buff_length缓冲长度
返回
是否成功执行

在文件 Modbus.c606 行定义.

◆ Modbus_Master_Read_IX()

bool Modbus_Master_Read_IX ( modbus_master_context_t ctx,
uint16_t  start_addr,
bool *  data,
size_t  number,
uint8_t *  buff,
size_t  buff_length 
)

Modbus主机读取输入点

参数
ctx上下文指针,需要自行定义
start_addr起始地址(寻址地址)
data待读取的数据指针
number待读取数据长度
buff缓冲,用于发送和接收数据,尽量大
buff_length缓冲长度
返回
是否成功执行

在文件 Modbus.c504 行定义.

◆ Modbus_Master_Read_OX()

bool Modbus_Master_Read_OX ( modbus_master_context_t ctx,
uint16_t  start_addr,
bool *  data,
size_t  number,
uint8_t *  buff,
size_t  buff_length 
)

Modbus主机读取输出线圈

参数
ctx上下文指针,需要自行定义
start_addr起始地址(寻址地址)
data待读取的数据指针
number待读取数据长度
buff缓冲,用于发送和接收数据,尽量大
buff_length缓冲长度
返回
是否成功执行

在文件 Modbus.c453 行定义.

◆ Modbus_Master_Write_Hold_Register()

bool Modbus_Master_Write_Hold_Register ( modbus_master_context_t ctx,
uint16_t  start_addr,
uint16_t *  data,
size_t  number,
uint8_t *  buff,
size_t  buff_length 
)

Modbus主机写保持寄存器

参数
ctx上下文指针,需要自行定义
start_addr起始地址(寻址地址)
data待写入的数据指针
number待写入数据长度
buff缓冲,用于发送和接收数据,尽量大
buff_length缓冲长度
返回
是否成功执行

在文件 Modbus.c812 行定义.

◆ Modbus_Master_Write_OX()

bool Modbus_Master_Write_OX ( modbus_master_context_t ctx,
uint16_t  start_addr,
bool *  data,
size_t  number,
uint8_t *  buff,
size_t  buff_length 
)

Modbus主机写输出线圈

参数
ctx上下文指针,需要自行定义
start_addr起始地址(寻址地址)
data待写入的数据指针
number待写入数据长度
buff缓冲,用于发送和接收数据,尽量大
buff_length缓冲长度
返回
是否成功执行

在文件 Modbus.c703 行定义.

◆ Modbus_Payload_Append_CRC()

bool Modbus_Payload_Append_CRC ( uint8_t *  payload,
size_t  payload_length 
)

在数据帧末尾的添加crc校验

参数
payload整帧数据的指针,需要在末尾留两个字节以填写CRC
payload_length长度(包含CRC)
返回
是否调用成功

在文件 Modbus.c71 行定义.

◆ Modbus_Payload_Check_CRC()

bool Modbus_Payload_Check_CRC ( uint8_t *  payload,
size_t  payload_length 
)

检查一帧数据的crc

参数
payload整帧数据(包含CRC)的指针
payload_length长度(包含CRC)
返回
CRC是否通过

在文件 Modbus.c52 行定义.

◆ Modbus_Slave_Parse_Input()

bool Modbus_Slave_Parse_Input ( modbus_slave_context_t ctx,
uint8_t *  input_data,
size_t  input_data_length,
uint8_t *  buff,
size_t  buff_length 
)

Modbus从机解析输入。 当从机接收到一帧数据后,调用此函数。 此函数会自动调用相关回调函数完成Modbus输出。

参数
ctx上下文指针,需要自行定义
input_data输入数据指针
input_data_length输入数据长度
buff缓冲(存放临时数据)
buff_length缓冲长度(需大于等于输入数据长度,足够存放输出数据)
返回
是否成功执行

在文件 Modbus.c90 行定义.