forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-06-06 b39a40b0191e0a8b155db74e885ff66e17b91896
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#ifndef _RS485_READ_DATA_H_
#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(RS485_READ_DATA_UARTX,__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_PASS,         //×îÖճɹ¦×´Ì¬£¬¿ÉÒÔ½øÐгɹ¦´¦Àí£¬´¦ÀíÍê±ÏÖ®ºóÔÙת³ÉIDLE״̬
//    RS485_COM_TIMEOUT,
//    RS485_COM_OFF
    
} 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 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