From 6ea1a42391f86e72f53042a966dae970a3fd77cb Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Fri, 17 May 2024 17:18:57 +0800
Subject: [PATCH] 阀门控制进一步完善

---
 HARDWARE/UART/uart.c |  184 +++++++++++++---------------------------------
 1 files changed, 52 insertions(+), 132 deletions(-)

diff --git a/HARDWARE/UART/uart.c b/HARDWARE/UART/uart.c
index 4fb8ee7..e365a70 100644
--- a/HARDWARE/UART/uart.c
+++ b/HARDWARE/UART/uart.c
@@ -4,8 +4,8 @@
 
 
 
-unsigned char UART1_temp[UART0_RECV_BUFF_LEN_MAX] = {0}; // USART1�������ݻ���
-uint8_t USART1_RX_BUF[UART0_RECV_BUFF_LEN_MAX] = {0};
+uint8_t RS485_read_data_recv_buff[RS485_READ_DATA_RECV_BUFF_LEN_MAX] = {0};
+
 u16 USART_RX_STA = 0; //����״̬���
 //void Usmart_RecvDataProcess(UC_RECV_PARA_T *usmart_recv_para_p)
 //{
@@ -62,171 +62,91 @@
 	}	
 }
 
-void Uart0_Init(void)
+
+void RS485_read_data_uart_Init(uint32_t	BaudRate,UART_ParityBitTypeDef	ParityBit,UART_StopBitTypeDef		StopBit)
 {
 	UART_SInitTypeDef UART_para;//UART��ʼ���ṹ��
   CMU_ClocksType CMU_Clocks;//ϵͳ��ʱ��Ƶ�ʽṹ��  �ڴ�����㲨�����й�
 	
 	/*UART0 IO ����*/
 	CMU_PERCLK_SetableEx(PADCLK, ENABLE);  //PADʱ�ӣ�GPIO��ʹ�ܺ���
-	AltFunIO(IR_RX_PORT, IR_RX_PIN, ALTFUN_NORMAL);		//PF3 UART0 RX
-	AltFunIO(IR_TX_PORT, IR_TX_PIN, ALTFUN_NORMAL);		//PF4 UART0 TX
+	AltFunIO(RS485_READ_DATA_TX_PORT, RS485_READ_DATA_TX_PIN, ALTFUN_NORMAL);		
+	AltFunIO(RS485_READ_DATA_RX_PORT, RS485_READ_DATA_RX_PIN, ALTFUN_NORMAL);	
 	
 	//UART����ʱ��Դѡ��   ֻ��UART0��1��Ҫѡ��  ����UART�˿��ݲ���Ҫ  ֱ��ע�ͼ���
-	UART_para.ClockSrc = CMU_OPCCR1_UART0CKS_APBCLK;		//UART0����ʱ��ѡ��	
-	UART_para.BaudRate = 115200;
-	UART_para.DataBit = Eight8Bit;	//�����
-	UART_para.ParityBit = NONE;			//��żУ��
-	UART_para.StopBit = OneBit;			//ֹͣλ
+	if((RS485_READ_DATA_UARTX==UART0)||(RS485_READ_DATA_UARTX==UART1))
+		UART_para.ClockSrc = CMU_OPCCR1_UART0CKS_APBCLK;		//UART0����ʱ��ѡ��	
+	
+	UART_para.BaudRate = BaudRate;
+	UART_para.ParityBit = ParityBit;			//��żУ��
+	if(ParityBit==NONE)
+		UART_para.DataBit = Eight8Bit;	//�����
+	else
+		UART_para.DataBit = Nine9Bit;	//�����
+	UART_para.StopBit = StopBit;			//ֹͣλ
 	
 	CMU_GetClocksFreq(&CMU_Clocks);  //��ȡϵͳ��ʱ��Ƶ��  
-	UART_SInit(UART0, &UART_para,&CMU_Clocks);	//��ʼ��uart	
+	UART_SInit(RS485_READ_DATA_UARTX, &UART_para,&CMU_Clocks);	//��ʼ��uart	
 	
 //	UARTx_IER_RXBF_IE_Setable(MODBUS_UART, ENABLE);//���ջ������ж�ʹ�� ��Ҫʹ�ý����жϴ򿪴˴�����
 //	UARTx_IER_TXSE_IE_Setable(MODBUS_UART, ENABLE)��//���ͻ�����ҷ�����λ�Ĵ������ж�ʹ�� ��Ҫʹ�÷����жϴ򿪴˴�����
 	
 	/*NVIC�ж����ȼ��Լ��Ƿ���ж�����*/
-	NVIC_DisableIRQ(UART0_IRQn);
+	NVIC_DisableIRQ(RS485_READ_DATA_UARTX_IRQn);
 //	NVIC_SetPriority(UART0_IRQn,2);//�ж����ȼ�����
 //	NVIC_EnableIRQ(UART0_IRQn);		//�жϷ�������
 	
-	UARTx_CSR_RXEN_Setable(UART0, ENABLE);  //�򿪽���ʹ��
-	UARTx_CSR_TXEN_Setable(UART0, ENABLE);  //�򿪷���ʹ��
+	UARTx_CSR_RXEN_Setable(RS485_READ_DATA_UARTX, ENABLE);  //�򿪽���ʹ��
+	UARTx_CSR_TXEN_Setable(RS485_READ_DATA_UARTX, ENABLE);  //�򿪷���ʹ��
 	
-	UARTx_ISR_RXBF_Clr(UART0);
+	UARTx_ISR_RXBF_Clr(RS485_READ_DATA_UARTX);
 }
 
-void Uart3_Init(void)
+
+void RS485_read_data_RX_DMA_CH3_Init(void)
 {
-	UART_SInitTypeDef UART_para;//UART��ʼ���ṹ��
-  CMU_ClocksType CMU_Clocks;//ϵͳ��ʱ��Ƶ�ʽṹ��  �ڴ�����㲨�����й�
+	DMA_InitTypeDef DMA_InitStructure;//DMA��ʼ�������ṹ��
 	
-	/*UART0 IO ����*/
-	CMU_PERCLK_SetableEx(PADCLK, ENABLE);  //PADʱ�ӣ�GPIO��ʹ�ܺ���
-	AltFunIO(MAIN_TX_PORT, MAIN_TX_PIN, ALTFUN_NORMAL);		
-	AltFunIO(MAIN_RX_PORT, MAIN_RX_PIN, ALTFUN_NORMAL);		
+	CMU_PERCLK_SetableEx(DMACLK, ENABLE);//DMAʱ��ʹ��
+	DMA_GCR_DMAEN_Setable(ENABLE);//DMA��ʹ��
 	
-	//UART����ʱ��Դѡ��   ֻ��UART0��1��Ҫѡ��  ����UART�˿��ݲ���Ҫ  ֱ��ע�ͼ���
-//	UART_para.ClockSrc = CMU_OPCCR1_UART0CKS_APBCLK;		//UART0����ʱ��ѡ��	
-	UART_para.BaudRate = 115200;
-	UART_para.DataBit = Eight8Bit;	//�����
-	UART_para.ParityBit = NONE;			//��żУ��
-	UART_para.StopBit = OneBit;			//ֹͣλ
+	DMA_InitStructure.CHx = DMA_CH3;//DMAͨ��������
+	DMA_InitStructure.CHxPRI = DMA_CHxCR_CHxPRI_HIGH;//ͨ�����ȼ�����
+	DMA_InitStructure.CHxINC = DMA_CHxCR_CHxINC_INCREASE;//ͨ����ַ��������
+	DMA_InitStructure.CHxSSEL = DMA_CHxCR_CH3SSEL_UART1_RX;//����ͨ��ѡ��
+	DMA_InitStructure.CHxDIR = DMA_CHxCR_DIR_TO_RAM;//���ݴ��䷽������
+	DMA_InitStructure.CHxTSIZE = RS485_READ_DATA_RECV_BUFF_LEN_MAX - 1;//ͨ�����䳤��
+	DMA_InitStructure.CHxRAMAD = (uint32)RS485_read_data_recv_buff;//Ŀ���ַ
+	DMA_InitStructure.CHxBDW = DMA_CHxCR_BDW_8BITS;//ͨ���������
 	
-	CMU_GetClocksFreq(&CMU_Clocks);  //��ȡϵͳ��ʱ��Ƶ��  
-	UART_SInit(UART3, &UART_para,&CMU_Clocks);	//��ʼ��uart	
+	DMA_InitStructure.CHxFTIE = DISABLE;   //ͨ����������ж�ʹ��
+	DMA_InitStructure.CHxHTIE = DISABLE;   //ͨ���������ն�ʹ��
+
+	DMA_InitStructure.CHxEN   = ENABLE;    //ͨ��ʹ��
 	
-//	UARTx_IER_RXBF_IE_Setable(MODBUS_UART, ENABLE);//���ջ������ж�ʹ�� ��Ҫʹ�ý����жϴ򿪴˴�����
-//	UARTx_IER_TXSE_IE_Setable(MODBUS_UART, ENABLE)��//���ͻ�����ҷ�����λ�Ĵ������ж�ʹ�� ��Ҫʹ�÷����жϴ򿪴˴�����
+	NVIC_DisableIRQ(DMA_IRQn);
+//	NVIC_SetPriority(DMA_IRQn,3);//�ж����ȼ�����
+//	NVIC_EnableIRQ(DMA_IRQn);
 	
-	/*NVIC�ж����ȼ��Լ��Ƿ���ж�����*/
-	NVIC_DisableIRQ(UART3_IRQn);
-//	NVIC_SetPriority(UART3_IRQn,2);//�ж����ȼ�����
-//	NVIC_EnableIRQ(UART3);		//�жϷ�������
-	
-	UARTx_CSR_RXEN_Setable(UART3, ENABLE);  //�򿪽���ʹ��
-	UARTx_CSR_TXEN_Setable(UART3, ENABLE);  //�򿪷���ʹ��
-	
-	UARTx_ISR_RXBF_Clr(UART3);
+//	DMA_CHxCR_CHxFTIE_Setable(MODBUS_DMA_RX_CHANNEL,ENABLE);//ͨ����������ж�ʹ��
+
+	DMA_ISR_DMACHFT_Clr(DMA_CH3);
+
+	DMA_Init(&DMA_InitStructure);//DMA���ò���д��
 }
 
-void Uart5_Init(void)
+void RS485_read_data_RX_DMA_CH3_reload(void)
 {
-	UART_SInitTypeDef UART_para;//UART��ʼ���ṹ��
-  CMU_ClocksType CMU_Clocks;//ϵͳ��ʱ��Ƶ�ʽṹ��  �ڴ�����㲨�����й�
+	DMA_ISR_DMACHFT_Clr(DMA_CH3);
+	DMA_CHxCR_ChxEN_Setable(DMA_CH3, DISABLE);	 //ͨ��ʧ��
 	
-	/*UART0 IO ����*/
-	CMU_PERCLK_SetableEx(PADCLK, ENABLE);  //PADʱ�ӣ�GPIO��ʹ�ܺ���
-	AltFunIO(GPRS_TX_PORT, GPRS_TX_PIN, ALTFUN_NORMAL);
-	AltFunIO(GPRS_RX_PORT, GPRS_RX_PIN, ALTFUN_NORMAL);	
+	memset(RS485_read_data_recv_buff,0,sizeof(RS485_read_data_recv_buff));
 	
-	//UART����ʱ��Դѡ��   ֻ��UART0��1��Ҫѡ��  ����UART�˿��ݲ���Ҫ  ֱ��ע�ͼ���
-//	UART_para.ClockSrc = CMU_OPCCR1_UART0CKS_APBCLK;		//UART0����ʱ��ѡ��	
-	UART_para.BaudRate = 115200;
-	UART_para.DataBit = Eight8Bit;	//�����
-	UART_para.ParityBit = NONE;			//��żУ��
-	UART_para.StopBit = OneBit;			//ֹͣλ
+	DMA_CHxMAR_Write(DMA_CH3, (uint32)RS485_read_data_recv_buff);
 	
-	CMU_GetClocksFreq(&CMU_Clocks);  //��ȡϵͳ��ʱ��Ƶ��  
-	UART_SInit(UART5, &UART_para,&CMU_Clocks);	//��ʼ��uart	
-	
-//	UARTx_IER_RXBF_IE_Setable(MODBUS_UART, ENABLE);//���ջ������ж�ʹ�� ��Ҫʹ�ý����жϴ򿪴˴�����
-//	UARTx_IER_TXSE_IE_Setable(MODBUS_UART, ENABLE)��//���ͻ�����ҷ�����λ�Ĵ������ж�ʹ�� ��Ҫʹ�÷����жϴ򿪴˴�����
-	
-	/*NVIC�ж����ȼ��Լ��Ƿ���ж�����*/
-	NVIC_DisableIRQ(UART5_IRQn);
-//	NVIC_SetPriority(UART5_IRQn,2);//�ж����ȼ�����
-//	NVIC_EnableIRQ(UART5_IRQn);		//�жϷ�������
-	
-	UARTx_CSR_RXEN_Setable(UART5, ENABLE);  //�򿪽���ʹ��
-	UARTx_CSR_TXEN_Setable(UART5, ENABLE);  //�򿪷���ʹ��
-	
-	UARTx_ISR_RXBF_Clr(UART5);
+	DMA_CHxCR_ChxEN_Setable(DMA_CH3, ENABLE);	 //ͨ��ʹ��
 }
 
-void Uart0_RX_DMA_CH7_Init(void)
-{
-//	DMA_InitTypeDef DMA_InitStructure;//DMA��ʼ�������ṹ��
-//	
-//	CMU_PERCLK_SetableEx(DMACLK, ENABLE);//DMAʱ��ʹ��
-//	DMA_GCR_DMAEN_Setable(ENABLE);//DMA��ʹ��
-//	
-//	DMA_InitStructure.CHx = DMA_CH7;//DMAͨ��������
-//	DMA_InitStructure.CHxPRI = DMA_CHxCR_CHxPRI_HIGH;//ͨ�����ȼ�����
-//	DMA_InitStructure.CHxINC = DMA_CHxCR_CHxINC_INCREASE;//ͨ����ַ��������
-//	DMA_InitStructure.CHxSSEL = DMA_CHxCR_CH7SSEL_UART0_RX;//����ͨ��ѡ��
-//	DMA_InitStructure.CHxDIR = DMA_CHxCR_DIR_TO_RAM;//���ݴ��䷽������
-//	DMA_InitStructure.CHxTSIZE = UC_RECV_LEN_MAX - 1;//ͨ�����䳤��
-//	DMA_InitStructure.CHxRAMAD = (uint32)uc_recv_para_g.uc_recv_buf_union.uc_recv_buf;//Ŀ���ַ
-//	DMA_InitStructure.CHxBDW = DMA_CHxCR_BDW_8BITS;//ͨ���������
-//	
-//	DMA_InitStructure.CHxFTIE = DISABLE;   //ͨ����������ж�ʹ��
-//	DMA_InitStructure.CHxHTIE = DISABLE;   //ͨ���������ն�ʹ��
-
-//	DMA_InitStructure.CHxEN   = ENABLE;    //ͨ��ʹ��
-//	
-//	NVIC_DisableIRQ(DMA_IRQn);
-////	NVIC_SetPriority(DMA_IRQn,3);//�ж����ȼ�����
-////	NVIC_EnableIRQ(DMA_IRQn);
-//	
-////	DMA_CHxCR_CHxFTIE_Setable(MODBUS_DMA_RX_CHANNEL,ENABLE);//ͨ����������ж�ʹ��
-
-//	DMA_ISR_DMACHFT_Clr(DMA_CH7);
-
-//	DMA_Init(&DMA_InitStructure);//DMA���ò���д��
-}
-
-void Uart3_RX_DMA_CH1_Init(void)
-{
-//	DMA_InitTypeDef DMA_InitStructure;//DMA��ʼ�������ṹ��
-//	
-//	CMU_PERCLK_SetableEx(DMACLK, ENABLE);//DMAʱ��ʹ��
-//	DMA_GCR_DMAEN_Setable(ENABLE);//DMA��ʹ��
-//	
-//	DMA_InitStructure.CHx = DMA_CH1;//DMAͨ��������
-//	DMA_InitStructure.CHxPRI = DMA_CHxCR_CHxPRI_HIGH;//ͨ�����ȼ�����
-//	DMA_InitStructure.CHxINC = DMA_CHxCR_CHxINC_INCREASE;//ͨ����ַ��������
-//	DMA_InitStructure.CHxSSEL = DMA_CHxCR_CH1SSEL_UART3_RX;//����ͨ��ѡ��
-//	DMA_InitStructure.CHxDIR = DMA_CHxCR_DIR_TO_RAM;//���ݴ��䷽������
-//	DMA_InitStructure.CHxTSIZE = INTER_RECV_LEN_MAX - 1;//ͨ�����䳤��
-//	DMA_InitStructure.CHxRAMAD = (uint32)inter_recv_para_g.inter_recv_union.inter_recv_buf;//Ŀ���ַ
-//	DMA_InitStructure.CHxBDW = DMA_CHxCR_BDW_8BITS;//ͨ���������
-//	
-//	DMA_InitStructure.CHxFTIE = DISABLE;   //ͨ����������ж�ʹ��
-//	DMA_InitStructure.CHxHTIE = DISABLE;   //ͨ���������ն�ʹ��
-
-//	DMA_InitStructure.CHxEN   = ENABLE;    //ͨ��ʹ��
-//	
-//	NVIC_DisableIRQ(DMA_IRQn);
-////	NVIC_SetPriority(DMA_IRQn,3);//�ж����ȼ�����
-////	NVIC_EnableIRQ(DMA_IRQn);
-//	
-////	DMA_CHxCR_CHxFTIE_Setable(MODBUS_DMA_RX_CHANNEL,ENABLE);//ͨ����������ж�ʹ��
-
-//	DMA_ISR_DMACHFT_Clr(DMA_CH1);
-
-//	DMA_Init(&DMA_InitStructure);//DMA���ò���д��
-}
 
 void Uart5_RX_DMA_CH5_Init(void)
 {

--
Gitblit v1.9.3