forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

wujiazhi
2024-06-13 72def895431ad7a08e635b11f3da738e2b2c4618
HARDWARE/UART/uart.h
@@ -1,87 +1,50 @@
#ifndef _UART_H_
#define _UART_H_
#include "define_all.h"
#include "define_all.h"
#include "upper_computer.h"
#define UART0_RECV_BUFF_LEN_MAX 200
// ÉÏλ»ú¼æ±»²É¼¯Æ÷²É¼¯Êý¾Ý
#define UP_COMM_TX_PORT          GPIOA
#define UP_COMM_TX_PIN          GPIO_Pin_9
#define UP_COMM_RX_PORT          GPIOA
#define UP_COMM_RX_PIN          GPIO_Pin_8
#define UP_COMM_RE_PORT          GPIOA
#define UP_COMM_RE_PIN          GPIO_Pin_10
// ºìÍâTX UART0/LPUART0
#define IR_TX_PORT GPIOF
#define IR_TX_PIN GPIO_Pin_4
// ºìÍâRX
#define IR_RX_PORT GPIOF
#define IR_RX_PIN GPIO_Pin_3
#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)
// Ö÷´ÓTX UART3
#define MAIN_TX_PORT GPIOC
#define MAIN_TX_PIN GPIO_Pin_10
#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_1
#define RS485_READ_DATA_RX_PORT       GPIOB
#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
#define   RS485_READ_DATA_DMA_CHX         DMA_CH3
// Ö÷´ÓRX
#define MAIN_RX_PORT GPIOC
#define MAIN_RX_PIN GPIO_Pin_11
// Ô¶´«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 GPRS_TX_PORT GPIOA
#define GPRS_TX_PIN GPIO_Pin_8
#define   WRC_UARTX               UART1
#define   WRC_UARTX_IRQn               UART1_IRQn
#define WRC_RECV_BUFF_LEN_MAX 1024
#define   WRC_DMA_CHX         DMA_CH3
// Ô¶´«RX
#define GPRS_RX_PORT GPIOA
#define GPRS_RX_PIN GPIO_Pin_9
#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 u16 USART_RX_STA;                          // ½ÓÊÕ״̬±ê¼Ç
extern u8 USART1_RX_BUF[UART0_RECV_BUFF_LEN_MAX]; // ½ÓÊÕ»º³å,×î´óUSART_REC_LEN¸ö×Ö½Ú.Ä©×Ö½ÚΪ»»Ðзû
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];
void Uart0_Init(void);
void Uart0_RX_DMA_CH7_Init(void);
void Uart3_Init(void);
void Uart3_RX_DMA_CH1_Init(void);
void Uart5_Init(void);
void Uart5_RX_DMA_CH5_Init(void);
extern UART_CTRL_PARA_T   uart_ctrl_para_g;
void UARTx_SendData_Normal(UART_Type *UARTx, uint8_t *pSendData, uint16_t send_len);
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);
//void Usmart_RecvDataProcess(UC_RECV_PARA_T *usmart_recv_para_p);
void Usmart_RecvDataProcess(UC_RECV_PARA_T *usmart_recv_para_p);
#endif