forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-06-19 6e3f1f560d618b37ee1a47fa2b0f682b70c3ef1c
HARDWARE/UART/uart.h
@@ -8,45 +8,75 @@
// ÉÏλ»ú¼æ±»²É¼¯Æ÷²É¼¯Êý¾Ý
#define UP_COMM_TX_PORT          GPIOA
#define UP_COMM_TX_PIN          GPIO_Pin_8
#define UP_COMM_TX_PIN          GPIO_Pin_9
#define UP_COMM_RX_PORT          GPIOA
#define UP_COMM_RX_PIN          GPIO_Pin_9
#define UP_COMM_RX_PIN          GPIO_Pin_8
#define UP_COMM_RE_PORT          GPIOA
#define UP_COMM_RE_PIN          GPIO_Pin_10
#define UP_COMM_RE_RECV_EN          GPIO_ResetBits(UP_COMM_RE_PORT,UP_COMM_RE_PIN)
#define UP_COMM_RE_SEND_EN          GPIO_SetBits(UP_COMM_RE_PORT,UP_COMM_RE_PIN)
#define   UP_COMM_UARTX               UART5
#define   UP_COMM_UARTX_IRQn               UART5_IRQn
#define UP_COMM_RECV_BUFF_LEN_MAX 1024
#define   UP_COMM_DMA_CHX         DMA_CH2
//RS485¶ÁÈ¡Á÷Á¿¼Æ
#define RS485_READ_DATA_TX_PORT       GPIOB
#define RS485_READ_DATA_TX_PIN       GPIO_Pin_0
#define RS485_READ_DATA_TX_PIN       GPIO_Pin_1
#define RS485_READ_DATA_RX_PORT       GPIOB
#define RS485_READ_DATA_RX_PIN       GPIO_Pin_1
#define RS485_READ_DATA_RX_PIN       GPIO_Pin_0
#define   RS485_READ_DATA_UARTX               UART1
#define   RS485_READ_DATA_UARTX_IRQn               UART1_IRQn
#define RS485_READ_DATA_RECV_BUFF_LEN_MAX 256
// Ô¶´«TX UART5
#define WRC_TX_PORT       GPIOA
#define WRC_TX_PIN       GPIO_Pin_8
#define WRC_RX_PORT       GPIOA
#define WRC_RX_PIN       GPIO_Pin_9
#define   RS485_READ_DATA_DMA_CHX         DMA_CH3
#define   WRC_UARTX               UART2
// Ô¶´«TX UART5
#define WRC_TX_PORT       GPIOE
#define WRC_TX_PIN       GPIO_Pin_4
#define WRC_RX_PORT       GPIOE
#define WRC_RX_PIN       GPIO_Pin_3
#define   WRC_UARTX               UART1
#define   WRC_UARTX_IRQn               UART1_IRQn
#define WRC_RECV_BUFF_LEN_MAX 1024
#pragma pack(1)
#define   WRC_DMA_CHX         DMA_CH3
#pragma pack(1)
typedef struct
{
   FlagStatus   WRC_rxto_flag;       //½ÓÊÕ³¬Ê±ÖжϱêÖ¾
   FlagStatus   RS485_rxto_flag;       //½ÓÊÕ³¬Ê±ÖжϱêÖ¾
   FlagStatus   UP_COMM_rxto_flag;       //½ÓÊÕ³¬Ê±ÖжϱêÖ¾,//Ö»ÓÐuart0ºÍuart1ÓнÓÊÕ³¬Ê±ÖжÏ
}UART_CTRL_PARA_T;
#pragma pack()
extern u16 USART_RX_STA;               //½ÓÊÕ״̬±ê¼Ç   
extern uint8_t RS485_read_data_recv_buff[RS485_READ_DATA_RECV_BUFF_LEN_MAX];
extern uint8_t up_comm_recv_buff[UP_COMM_RECV_BUFF_LEN_MAX];
extern uint8_t WRC_recv_buff[WRC_RECV_BUFF_LEN_MAX];
extern UART_CTRL_PARA_T   uart_ctrl_para_g;
void RS485_read_data_uart_Init(uint32_t   BaudRate,UART_ParityBitTypeDef   ParityBit,UART_StopBitTypeDef      StopBit);
void RS485_read_data_RX_DMA_CH3_Init(void);
void RS485_read_data_RX_DMA_CH3_reload(void);
void up_comm_uart_Init(uint32_t   BaudRate,UART_ParityBitTypeDef   ParityBit,UART_StopBitTypeDef      StopBit);
void up_comm_RX_DMA_CH2_Init(void);
void up_comm_RX_DMA_CH2_reload(void);
void WRC_uart_Init(uint32_t   BaudRate,UART_ParityBitTypeDef   ParityBit,UART_StopBitTypeDef      StopBit);
void WRC_RX_DMA_CH3_Init(void);
void WRC_RX_DMA_CH3_reload(void);
void UARTx_SendData_Normal(UART_Type* UARTx,uint8_t * pSendData,uint16_t send_len);