From 5ac1d0febb8de5e91ce2463baea68ddac3f66091 Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Thu, 16 May 2024 20:00:17 +0800
Subject: [PATCH] 完善脉冲计费和485采集处理
---
Function/FLOW_METER_DATA_COLLECT/rs485_read_data.h | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 112 insertions(+), 5 deletions(-)
diff --git a/Function/FLOW_METER_DATA_COLLECT/rs485_read_data.h b/Function/FLOW_METER_DATA_COLLECT/rs485_read_data.h
index 953531d..feef95e 100644
--- a/Function/FLOW_METER_DATA_COLLECT/rs485_read_data.h
+++ b/Function/FLOW_METER_DATA_COLLECT/rs485_read_data.h
@@ -2,26 +2,133 @@
#define _RS485_READ_DATA_H_
#include "define_all.h"
+#include "system_general_para.h"
+
+#define RS485_SEND_NORMAL(__DATA__,__SIZE__) do{RS485_RE_SEND_ENABLE;UARTx_SendData_Normal(UART5,__DATA__,__SIZE__);delay_us(10);RS485_RE_REC_ENABLE;}while(0)
+
+
+#define RS485_REREAD_NUM 3
+#define RS485_REREAD_WATI_TIME 3
+#define RS485_PWR_DELAY_TIME 30
+
+
+
+/****IO����****/
+
+//RS485�Ƿ�ռ���ж�����
+#define RS485_SYNC_PORT GPIOE
+#define RS485_SYNC_PIN GPIO_Pin_2
+#define RS485_SYNC_IO_READ GPIO_ReadInputDataBit(RS485_SYNC_PORT, RS485_SYNC_PIN)
+
+//RS485оƬ����
+#define RS485_PWR_PORT GPIOA
+#define RS485_PWR_PIN GPIO_Pin_15
+#define RS485_PWR_ON GPIO_SetBits(RS485_PWR_PORT,RS485_PWR_PIN)
+#define RS485_PWR_OFF GPIO_ResetBits(RS485_PWR_PORT,RS485_PWR_PIN)
+
+
+//RS485�շ�ʹ��
+#define RS485_RE_PORT GPIOA
+#define RS485_RE_PIN GPIO_Pin_14
+#define RS485_RE_SEND_ENABLE GPIO_SetBits(RS485_RE_PORT,RS485_RE_PIN)
+#define RS485_RE_REC_ENABLE GPIO_ResetBits(RS485_RE_PORT,RS485_RE_PIN)
+
+//��������IO
+#define PWR_OUTPUT1_PORT GPIOB
+#define PWR_OUTPUT1_PIN GPIO_Pin_11
+#define PWR_OUTPUT1_ON GPIO_SetBits(PWR_OUTPUT1_PORT,PWR_OUTPUT1_PIN)
+#define PWR_OUTPUT1_OFF GPIO_ResetBits(PWR_OUTPUT1_PORT,PWR_OUTPUT1_PIN)
+#define PWR_OUTPUT2_PORT GPIOB
+#define PWR_OUTPUT2_PIN GPIO_Pin_12
+#define PWR_OUTPUT2_ON GPIO_SetBits(PWR_OUTPUT2_PORT,PWR_OUTPUT2_PIN)
+#define PWR_OUTPUT2_OFF GPIO_ResetBits(PWR_OUTPUT2_PORT,PWR_OUTPUT2_PIN)
+
+#define PWR_OUTPUT_9V_PORT GPIOB
+#define PWR_OUTPUT_9V_PIN GPIO_Pin_14
+#define PWR_OUTPUT_9V_ON GPIO_SetBits(PWR_OUTPUT_9V_PORT,PWR_OUTPUT_9V_PIN)
+#define PWR_OUTPUT_9V_OFF GPIO_ResetBits(PWR_OUTPUT_9V_PORT,PWR_OUTPUT_9V_PIN)
+#define PWR_OUTPUT_12V_PORT GPIOB
+#define PWR_OUTPUT_12V_PIN GPIO_Pin_15
+#define PWR_OUTPUT_12V_ON GPIO_SetBits(PWR_OUTPUT_12V_PORT,PWR_OUTPUT_12V_PIN)
+#define PWR_OUTPUT_12V_OFF GPIO_ResetBits(PWR_OUTPUT_12V_PORT,PWR_OUTPUT_12V_PIN)
+
+#define PWR_BOOST_EN_PORT GPIOB
+#define PWR_BOOST_EN_PIN GPIO_Pin_13
+#define PWR_BOOST_ENABLE GPIO_SetBits(PWR_BOOST_EN_PORT,PWR_BOOST_EN_PIN)
+#define PWR_BOOST_DIABLE GPIO_ResetBits(PWR_BOOST_EN_PORT,PWR_BOOST_EN_PIN)
+
typedef enum
{
RS485_COM_IDLE = 0U,
RS485_COM_PWR_ON,
+// RS485_COM_PWR_WAIT,
RS485_COM_SEND,
RS485_COM_WAIT_ANSWER,
- RS485_COM_TIMEOUT,
- RS485_COM_OFF
+// RS485_COM_PASS, //���ճɹ�״̬�����Խ��гɹ������������֮����ת��IDLE״̬
+// RS485_COM_TIMEOUT,
+// RS485_COM_OFF
-} RS485_COM_STATUS_T; // ����״̬����
+} RS485_COM_STATUS_T; // RS485����״̬����,״̬��ÿ���л���Ҫ��һ���������ڣ�Ϊ�˽�ʡʱ�䣬ֻ��3��״̬
+
+
+#define RS485_COM_REC_BUF_LENGTH 256
+typedef struct{
+
+ uint8_t recv_buf[RS485_COM_REC_BUF_LENGTH];
+ uint16_t recv_length;
+ FlagStatus recv_flag;
+
+}RS485_COM_UART_PARA_T;
+
+
+typedef enum
+{
+ RS485_V1_5V = 0x0U,
+ RS485_V1_9V = 0x1U,
+ RS485_V1_12V = 0x2U,
+ RS485_V2_5V = 0x10U,
+
+} RS485_PWR_OUTPUT_SELECT; //
+
+
+typedef enum
+{
+ STEP_NONE = 0U,
+ MODBUS_STEP1,
+ MODBUS_STEP2,
+ MODBUS_STEP3,
+ MODBUS_STEP4,
+ MODBUS_STEP5,
+ MODBUS_STEP6,
+
+} RS485_MODBUS_STEP_STATUS_T; //
+typedef struct{
+
+ RS485_COM_STATUS_T status ; //
+ uint8_t reread_num_cnt ; //�ض���������
+ uint8_t reread_wait_time_cnt; //�ض��ȴ�ʱ�����
+
+ FlagStatus pwr_delay_status; //����ȴ�״̬
+ uint8_t pwr_delay_time_out_cnt; //����ȴ�����
+
+ RS485_MODBUS_STEP_STATUS_T modbus_step_status; //����modbus��ַ�ֵıȽϿ�������һ���Զ�ȡ���������Ҫ�ֶ�ζ�ȡ
+ RS485_MODBUS_STEP_STATUS_T modbus_last_status; //����modbus��ַ�ֵıȽϿ�������һ���Զ�ȡ���������Ҫ�ֶ�ζ�ȡ
+
+}RS485_COM_CTRL_PARA_T;
-extern __IO RS485_COM_STATUS_T rs485_com_status_g;
-void rs485ReadDataPro(void);
+extern RS485_COM_UART_PARA_T rs485_com_uart_data_g;
+extern __IO RS485_COM_CTRL_PARA_T rs485_com_ctrl_pata_g;
+
+
+void RS485_read_data_GPIO_Init(void);
+void rs485ReadDataPro(FUN_START_CTRL_PARA_T * sys_fun_run_ctrl_p);
#endif
--
Gitblit v1.9.3