From cf4d12fd8322cbb350dd3bc5af8c748e8790ac64 Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Wed, 05 Jun 2024 17:38:06 +0800
Subject: [PATCH] 继续测试修改

---
 HARDWARE/UART/uart.c |   72 +++++++++++++++++++++++++++++++-----
 1 files changed, 62 insertions(+), 10 deletions(-)

diff --git a/HARDWARE/UART/uart.c b/HARDWARE/UART/uart.c
index 7c3b5f0..7a1c099 100644
--- a/HARDWARE/UART/uart.c
+++ b/HARDWARE/UART/uart.c
@@ -8,6 +8,12 @@
 uint8_t up_comm_recv_buff[UP_COMM_RECV_BUFF_LEN_MAX] = {0};
 uint8_t WRC_recv_buff[WRC_RECV_BUFF_LEN_MAX] = {0};
 
+UART_CTRL_PARA_T	uart_ctrl_para_g = {
+	.WRC_rxto_flag = RESET,
+	.RS485_rxto_flag = RESET,
+	.UP_COMM_rxto_flag = RESET,
+};
+
 u16 USART_RX_STA = 0; //����״̬���
 //void Usmart_RecvDataProcess(UC_RECV_PARA_T *usmart_recv_para_p)
 //{
@@ -64,6 +70,25 @@
 	}	
 }
 
+void UART1_IRQHandler(void)
+{
+	//ֻ��uart0��uart1�н��ճ�ʱ�ж�
+	if(UARTx_ISR_RXTO_Chk(UART1) == SET){
+		UARTx_ISR_RXTO_Clr(UART1);
+		uart_ctrl_para_g.RS485_rxto_flag = SET;
+		uart_ctrl_para_g.WRC_rxto_flag =  SET;
+	}
+}
+
+//void UART5_IRQHandler(void)
+//{
+//	//ֻ��uart0��uart1�н��ճ�ʱ�ж�
+//	if(UARTx_ISR_RXTO_Chk(UART5) == SET){
+//		UARTx_ISR_RXTO_Clr(UART5);
+//		uart_ctrl_para_g.UP_COMM_rxto_flag = SET;
+//	}
+//}
+
 
 void RS485_read_data_uart_Init(uint32_t	BaudRate,UART_ParityBitTypeDef	ParityBit,UART_StopBitTypeDef		StopBit)
 {
@@ -76,8 +101,11 @@
 	AltFunIO(RS485_READ_DATA_RX_PORT, RS485_READ_DATA_RX_PIN, ALTFUN_NORMAL);	
 	
 	//UART����ʱ��Դѡ��   ֻ��UART0��1��Ҫѡ��  ����UART�˿��ݲ���Ҫ  ֱ��ע�ͼ���
-	if((RS485_READ_DATA_UARTX==UART0)||(RS485_READ_DATA_UARTX==UART1))
+	if(RS485_READ_DATA_UARTX==UART0)
 		UART_para.ClockSrc = CMU_OPCCR1_UART0CKS_APBCLK;		//UART0����ʱ��ѡ��	
+	else if(RS485_READ_DATA_UARTX==UART1)
+		UART_para.ClockSrc = CMU_OPCCR1_UART1CKS_APBCLK;		//UART1����ʱ��ѡ��	
+		
 	
 	UART_para.BaudRate = BaudRate;
 	UART_para.ParityBit = ParityBit;			//��żУ��
@@ -93,10 +121,16 @@
 //	UARTx_IER_RXBF_IE_Setable(RS485_READ_DATA_UARTX, ENABLE);//���ջ������ж�ʹ�� ��Ҫʹ�ý����жϴ򿪴˴�����
 //	UARTx_IER_TXSE_IE_Setable(RS485_READ_DATA_UARTX, ENABLE)��//���ͻ�����ҷ�����λ�Ĵ������ж�ʹ�� ��Ҫʹ�÷����жϴ򿪴˴�����
 	
-	/*NVIC�ж����ȼ��Լ��Ƿ���ж�����*/
 	NVIC_DisableIRQ(RS485_READ_DATA_UARTX_IRQn);
-//	NVIC_SetPriority(RS485_READ_DATA_UARTX_IRQn,2);//�ж����ȼ�����
-//	NVIC_EnableIRQ(RS485_READ_DATA_UARTX_IRQn);		//�жϷ�������
+	UARTx_TODR_RXTO_LEN_Set(RS485_READ_DATA_UARTX, 255);//ֻ��uart0��uart1�н��ճ�ʱ�ж�
+	UARTx_ISR_RXTO_Clr(RS485_READ_DATA_UARTX);
+	UARTx_IER_RXTO_IE_Setable(RS485_READ_DATA_UARTX, ENABLE);
+//	NVIC_EnableIRQ(RS485_READ_DATA_UARTX_IRQn);
+	UARTx_CSR_RXTOEN_Setable(RS485_READ_DATA_UARTX, ENABLE);
+	/*NVIC�ж����ȼ��Լ��Ƿ���ж�����*/
+//	NVIC_DisableIRQ(RS485_READ_DATA_UARTX_IRQn);
+	NVIC_SetPriority(RS485_READ_DATA_UARTX_IRQn,2);//�ж����ȼ�����
+	NVIC_EnableIRQ(RS485_READ_DATA_UARTX_IRQn);		//�жϷ�������
 	
 	UARTx_CSR_RXEN_Setable(RS485_READ_DATA_UARTX, ENABLE);  //�򿪽���ʹ��
 	UARTx_CSR_TXEN_Setable(RS485_READ_DATA_UARTX, ENABLE);  //�򿪷���ʹ��
@@ -165,8 +199,10 @@
 	UP_COMM_RE_RECV_EN;
 	
 	//UART����ʱ��Դѡ��   ֻ��UART0��1��Ҫѡ��  ����UART�˿��ݲ���Ҫ  ֱ��ע�ͼ���
-	if((UP_COMM_UARTX==UART0)||(UP_COMM_UARTX==UART1))
+	if(UP_COMM_UARTX==UART0)
 		UART_para.ClockSrc = CMU_OPCCR1_UART0CKS_APBCLK;		//UART0����ʱ��ѡ��	
+	else if(UP_COMM_UARTX==UART1)
+		UART_para.ClockSrc = CMU_OPCCR1_UART1CKS_APBCLK;		//UART1����ʱ��ѡ��	
 	
 	UART_para.BaudRate = BaudRate;
 	UART_para.ParityBit = ParityBit;			//��żУ��
@@ -181,10 +217,17 @@
 	
 //	UARTx_IER_RXBF_IE_Setable(UP_COMM_UARTX, ENABLE);//���ջ������ж�ʹ�� ��Ҫʹ�ý����жϴ򿪴˴�����
 //	UARTx_IER_TXSE_IE_Setable(UP_COMM_UARTX, ENABLE)��//���ͻ�����ҷ�����λ�Ĵ������ж�ʹ�� ��Ҫʹ�÷����жϴ򿪴˴�����
+//	NVIC_DisableIRQ(UP_COMM_UARTX_IRQn);
+//	UARTx_TODR_RXTO_LEN_Set(UP_COMM_UARTX, 255);//ֻ��uart0��uart1�н��ճ�ʱ�ж�
+//	UARTx_ISR_RXTO_Clr(UP_COMM_UARTX);
+//	UARTx_IER_RXTO_IE_Setable(UP_COMM_UARTX, ENABLE);
+////	NVIC_EnableIRQ(UP_COMM_UARTX_IRQn);
+//	UARTx_CSR_RXTOEN_Setable(UP_COMM_UARTX, ENABLE);
+	
 	
 	/*NVIC�ж����ȼ��Լ��Ƿ���ж�����*/
 	NVIC_DisableIRQ(UP_COMM_UARTX_IRQn);
-//	NVIC_SetPriority(UP_COMM_UARTX_IRQn,2);//�ж����ȼ�����
+//	NVIC_SetPriority(UP_COMM_UARTX_IRQn,4);//�ж����ȼ�����
 //	NVIC_EnableIRQ(UP_COMM_UARTX_IRQn);		//�жϷ�������
 	
 	UARTx_CSR_RXEN_Setable(UP_COMM_UARTX, ENABLE);  //�򿪽���ʹ��
@@ -250,8 +293,10 @@
 	AltFunIO(WRC_RX_PORT, WRC_RX_PIN, ALTFUN_NORMAL);	
 	
 	//UART����ʱ��Դѡ��   ֻ��UART0��1��Ҫѡ��  ����UART�˿��ݲ���Ҫ  ֱ��ע�ͼ���
-	if((WRC_UARTX==UART0)||(WRC_UARTX==UART1))
+	if(WRC_UARTX==UART0)
 		UART_para.ClockSrc = CMU_OPCCR1_UART0CKS_APBCLK;		//UART0����ʱ��ѡ��	
+	else if(WRC_UARTX==UART1)
+		UART_para.ClockSrc = CMU_OPCCR1_UART1CKS_APBCLK;		//UART1����ʱ��ѡ��	
 	
 	UART_para.BaudRate = BaudRate;
 	UART_para.ParityBit = ParityBit;			//��żУ��
@@ -267,10 +312,17 @@
 //	UARTx_IER_RXBF_IE_Setable(WRC_UARTX, ENABLE);//���ջ������ж�ʹ�� ��Ҫʹ�ý����жϴ򿪴˴�����
 //	UARTx_IER_TXSE_IE_Setable(WRC_UARTX, ENABLE)��//���ͻ�����ҷ�����λ�Ĵ������ж�ʹ�� ��Ҫʹ�÷����жϴ򿪴˴�����
 	
-	/*NVIC�ж����ȼ��Լ��Ƿ���ж�����*/
 	NVIC_DisableIRQ(WRC_UARTX_IRQn);
-//	NVIC_SetPriority(WRC_UARTX_IRQn,2);//�ж����ȼ�����
-//	NVIC_EnableIRQ(WRC_UARTX_IRQn);		//�жϷ�������
+	UARTx_TODR_RXTO_LEN_Set(WRC_UARTX, 255);//ֻ��uart0��uart1�н��ճ�ʱ�ж�
+	UARTx_ISR_RXTO_Clr(WRC_UARTX);
+	UARTx_IER_RXTO_IE_Setable(WRC_UARTX, ENABLE);
+//	NVIC_EnableIRQ(WRC_UARTX_IRQn);
+	UARTx_CSR_RXTOEN_Setable(WRC_UARTX, ENABLE);
+	
+	/*NVIC�ж����ȼ��Լ��Ƿ���ж�����*/
+//	NVIC_DisableIRQ(WRC_UARTX_IRQn);
+	NVIC_SetPriority(WRC_UARTX_IRQn,2);//�ж����ȼ�����
+	NVIC_EnableIRQ(WRC_UARTX_IRQn);		//�жϷ�������
 	
 	UARTx_CSR_RXEN_Setable(WRC_UARTX, ENABLE);  //�򿪽���ʹ��
 	UARTx_CSR_TXEN_Setable(WRC_UARTX, ENABLE);  //�򿪷���ʹ��

--
Gitblit v1.9.3