This commit is contained in:
parent
4f1f4f0eca
commit
490a53a2af
|
@ -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 */
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue