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