#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