G-CAMS-DATU/applications/Modbus/modbus_rtu.h

78 lines
1.7 KiB
C
Raw Normal View History

2024-05-13 08:08:47 +00:00
/*
* Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2024-04-23 lijian the first version
*/
#ifndef APPLICATIONS_MODBUS_MODBUS_RTU_H_
#define APPLICATIONS_MODBUS_MODBUS_RTU_H_
#include <rtthread.h>
#include <drv_common.h>
#include <rtdevice.h>
#include <rtthread.h>
#include <rtdevice.h>
#include <stdint.h>
#include "rs485.h"
//int rs485_init(void);
//int rs485_send(uint8_t *buf, int len);
//int rs485_receive(uint8_t *buf, int bufsz, int timeout, int bytes_timeout);
#include "agile_modbus.h"
#include "agile_modbus_rtu.h"
#include <rs485.h>
typedef struct
{
rt_uint16_t modbus_addr;//从机地址
rt_uint16_t modbus_reg_addr;//寄存器地址
rt_uint16_t modbus_reg_num;//寄存器数量
rt_uint8_t modbus_func;//功能码
rt_uint8_t modbus_rec; //接收成功
rt_uint8_t log; //log
rt_uint16_t hold_register[10];
} Modbus_RTU_t; //
//设置modbus从机地址
void set_Modbus_Addr(rt_uint16_t modbus_addr);
//获取Modbus从机地址
rt_uint16_t get_Modbus_Addr();
//设置modbus寄存器地址
void set_Modbus_Reg_Addr(rt_uint16_t modbus_reg_addr);
//获取Modbus读取寄存器起始地址
rt_uint16_t get_Modbus_Reg_Addr();
/**
* @brief Modbus读寄存器数量
* @return rt_uint16
*/
void set_Modbus_Reg_Num(rt_uint16_t modbus_reg_num);
/**
* @brief Modbus读寄存器数量
* @return rt_uint16
*/
rt_uint16_t get_Modbus_Reg_Num();
void set_modbus_log(rt_uint8_t log);
//modbus初始化
void Modbus_init();
//获取modbus是否接收成功
rt_uint16_t get_modbus_rec();
#endif /* APPLICATIONS_MODBUS_MODBUS_RTU_H_ */