This commit is contained in:
吴俊潮 2025-04-02 15:51:36 +08:00
parent 4f1f4f0eca
commit 490a53a2af
2 changed files with 36 additions and 36 deletions

View File

@ -126,14 +126,14 @@ int main(void)
ee_io_init(); ee_io_init();
prov_init(); //±ÈÀý·§³õʼ»¯ prov_init(); //±ÈÀý·§³õʼ»¯
ee_readbytes(ch395_addr,0,14); // ee_readbytes(ch395_addr,0,14);
for(int n = 0;n < 12;n++) // for(int n = 0;n < 12;n++)
{ // {
HoldReg[40 + n] = ch395_addr[n]; // HoldReg[40 + n] = ch395_addr[n];
} // }
HoldReg[52] = ch395_addr[12] << 8 | ch395_addr[13]; // HoldReg[52] = ch395_addr[12] << 8 | ch395_addr[13];
ch395_hardware_init(); //ch395硬件初始化 // ch395_hardware_init(); //ch395硬件初始化
ch395_init(); //以太网初始化 // ch395_init(); //以太网初始化
/* USER CODE END 2 */ /* USER CODE END 2 */

View File

@ -6,16 +6,16 @@
#include "uarts.h" #include "uarts.h"
#include "ch395.h" #include "ch395.h"
/*--------------------------------- 宏定义 -----------------------------------*/ /*--------------------------------- 宏定义 -----------------------------------*/
//功能码 //功能码
#define ReadCoilState 0x01 //读取线圈状态 #define ReadCoilState 0x01 //读取线圈状态
#define ReadDisInputState 0x02 //读取输入状态 #define ReadDisInputState 0x02 //读取输入状态
#define ReadHoldReg 0x03 //读取保持寄存器 #define ReadHoldReg 0x03 //读取保持寄存器
#define ReadInputReg 0x04 //读取输入寄存器 #define ReadInputReg 0x04 //读取输入寄存器
#define WriteSingleCoil 0x05 //强制写单线圈输出状态 #define WriteSingleCoil 0x05 //强制写单线圈输出状态
#define WriteSingleReg 0x06 //预设(写)单寄存器 #define WriteSingleReg 0x06 //预设(写)单寄存器
#define WriteMultiCoil 0x0F //强制写多线圈输出状态 #define WriteMultiCoil 0x0F //强制写多线圈输出状态
#define WriteMultiReg 0x10 //预设(写)多寄存器 #define WriteMultiReg 0x10 //预设(写)多寄存器
#define COIL_ADD_MIN 0x10 #define COIL_ADD_MIN 0x10
#define COIL_ADD_MAX 0x5F #define COIL_ADD_MAX 0x5F
@ -38,14 +38,14 @@
#define MAKEWORD(a,b) ((uint16_t)(((uint8_t)(a)) | ((uint16_t)((uint8_t)(b))) << 8)) #define MAKEWORD(a,b) ((uint16_t)(((uint8_t)(a)) | ((uint16_t)((uint8_t)(b))) << 8))
//串口相关定义 //串口相关定义
#define UART1_RXSIZE 1024 //一帧接收数据的最大值 #define UART1_RXSIZE 1024 //一帧接收数据的最大值
#define UART1_TXSIZE 1024 //一帧发送数据的最大值 #define UART1_TXSIZE 1024 //一帧发送数据的最大值
#define MAX_SIZE 1024 #define MAX_SIZE 1024
#define MODBUS_UART uart1 //将串口改成相应的变量即可例如用到UART1此处改为uart1 #define MODBUS_UART uart1 //将串口改成相应的变量即可例如用到UART1此处改为uart1
#define MODBUS_HUART huart1 //将串口改成相应的变量即可例如用到UART1此处改为huart1 #define MODBUS_HUART huart1 //将串口改成相应的变量即可例如用到UART1此处改为huart1
#define MODBUS_HTIM htim7 //将串口改成相应的变量即可例如用到UART1此处改为huart1 #define MODBUS_HTIM htim7 //将串口改成相应的变量即可例如用到UART1此处改为huart1
typedef enum typedef enum
{ {
@ -63,24 +63,24 @@ typedef enum
typedef union var_reg typedef union var_reg
{ {
uint16_t SamData [MAX_INPUT_REG_NUM]; // 采样数据 uint16_t SamData [MAX_INPUT_REG_NUM]; // 采样数据
uint16_t InputReg[MAX_INPUT_REG_NUM]; // Reg 与 SamData uint16_t InputReg[MAX_INPUT_REG_NUM]; // Reg 与 SamData
}Var_Reg; }Var_Reg;
typedef struct typedef struct
{ {
uint8_t *rx_buf; //接收缓冲数组 uint8_t *rx_buf; //接收缓冲数组
uint16_t rx_buf_cnt; //接收缓冲计数值 uint16_t rx_buf_cnt; //接收缓冲计数值
uint16_t rx_size; //接收数据大小 uint16_t rx_size; //接收数据大小
uint8_t rx_flag; //接收完成标志位 uint8_t rx_flag; //接收完成标志位
uint8_t *tx_buf; //发送缓冲数组 uint8_t *tx_buf; //发送缓冲数组
uint16_t tx_buf_cnt; //发送缓冲计数值 uint16_t tx_buf_cnt; //发送缓冲计数值
uint16_t tx_size; //实际发送数据大小 uint16_t tx_size; //实际发送数据大小
}UART_BUF; }UART_BUF;
extern UART_BUF uart1; //串口结构体实体 extern UART_BUF uart1; //串口结构体实体
extern uint8_t RxBuffer; //接收数据中间变量 extern uint8_t RxBuffer; //接收数据中间变量
extern uint8_t CoilState[(MAX_COIL_NUM + 7) / 8]; extern uint8_t CoilState[(MAX_COIL_NUM + 7) / 8];
extern uint8_t DisState [(MAX_DIS_NUM + 7) / 8]; extern uint8_t DisState [(MAX_DIS_NUM + 7) / 8];
@ -89,7 +89,7 @@ extern uint16_t HoldReg[MAX_HOLD_REG_NUM];
extern Var_Reg SamVarReg; extern Var_Reg SamVarReg;
void modbus_rtu_init(void);//RTU初始化 void modbus_rtu_init(void);//RTU初始化
void modbus_rx_cb(void); void modbus_rx_cb(void);
uint16_t ModbusCRC16(uint8_t *ptr, uint16_t len); uint16_t ModbusCRC16(uint8_t *ptr, uint16_t len);