#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
|