From 72def895431ad7a08e635b11f3da738e2b2c4618 Mon Sep 17 00:00:00 2001
From: wujiazhi <1147861305@qq.com>
Date: Thu, 13 Jun 2024 11:31:04 +0800
Subject: [PATCH] add lower model test
---
HARDWARE/UART/uart.c | 578 +++++++++++++++++++++++----------------------------------
1 files changed, 235 insertions(+), 343 deletions(-)
diff --git a/HARDWARE/UART/uart.c b/HARDWARE/UART/uart.c
index 7a1c099..c6abdc7 100644
--- a/HARDWARE/UART/uart.c
+++ b/HARDWARE/UART/uart.c
@@ -1,56 +1,48 @@
#include "uart.h"
#include "gpio.h"
#include "usmart.h"
+#include "gprs.h"
+#include "master_slave_inter.h"
+#include "project_test.h"
+unsigned char UART1_temp[UART0_RECV_BUFF_LEN_MAX] = {0}; // USART1�������ݻ���
+uint8_t USART1_RX_BUF[UART0_RECV_BUFF_LEN_MAX] = {0};
+u16 USART_RX_STA = 0; // ����״̬���
+void Usmart_RecvDataProcess(UC_RECV_PARA_T *usmart_recv_para_p)
+{
+ // USMARTͨѶ
+ if (usmart_recv_para_p->uc_recv_flag)
+ {
+ usmart_recv_para_p->uc_recv_flag = RESET;
+ // �����������ҪΪ�س��ͻ���
+ if (usmart_recv_para_p->uc_recv_buf_union.uc_recv_buf[usmart_recv_para_p->uc_recv_length - 1] == 0x0A &&
+ usmart_recv_para_p->uc_recv_buf_union.uc_recv_buf[usmart_recv_para_p->uc_recv_length - 2] == 0x0D)
+ {
+ USART_RX_STA = 0xC000 | (usmart_recv_para_p->uc_recv_length - 2);
+ memcpy(USART1_RX_BUF, usmart_recv_para_p->uc_recv_buf_union.uc_recv_buf, usmart_recv_para_p->uc_recv_length);
+ usmart_dev.scan(); // ִ��usmartɨ��
+ memset(usmart_recv_para_p->uc_recv_buf_union.uc_recv_buf, 0, sizeof(usmart_recv_para_p->uc_recv_buf_union.uc_recv_buf));
+ }
+ else
+ {
+ usmart_recv_para_p->uc_recv_flag = SET;
+ USART_RX_STA = 0;
+ }
+ }
+}
-
-
-uint8_t RS485_read_data_recv_buff[RS485_READ_DATA_RECV_BUFF_LEN_MAX] = {0};
-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)
+////��д�������,�ض���printf���������ڣ���˼����˵printfֱ����������ڣ���Ĭ�����������̨��
+///*fputc*/
+// int fputc(int c, FILE *f)
//{
-// // USMARTͨѶ
-// if (usmart_recv_para_p->uc_recv_flag)
-// {
-// usmart_recv_para_p->uc_recv_flag = RESET;
-// //�����������ҪΪ�س��ͻ���
-// if (usmart_recv_para_p->uc_recv_buf_union.uc_recv_buf[usmart_recv_para_p->uc_recv_length - 1] == 0x0A &&
-// usmart_recv_para_p->uc_recv_buf_union.uc_recv_buf[usmart_recv_para_p->uc_recv_length - 2] == 0x0D)
-// {
-// USART_RX_STA = 0xC000 | (usmart_recv_para_p->uc_recv_length - 2);
-// memcpy(USART1_RX_BUF, usmart_recv_para_p->uc_recv_buf_union.uc_recv_buf, usmart_recv_para_p->uc_recv_length);
-// usmart_dev.scan(); //ִ��usmartɨ��
-// memset(usmart_recv_para_p->uc_recv_buf_union.uc_recv_buf, 0, sizeof(usmart_recv_para_p->uc_recv_buf_union.uc_recv_buf));
-// }
-// else
-// {
-// usmart_recv_para_p->uc_recv_flag = SET;
-// USART_RX_STA = 0;
-// }
-// }
-//}
-
-//��д�������,�ض���printf���������ڣ���˼����˵printfֱ����������ڣ���Ĭ�����������̨��
-/*fputc*/
-//int fputc(int c, FILE *f)
-//{
-// uint8_t ch;
-// ch = c;
+// uint8_t ch;
+// ch = c;
// UARTx_TXBUF_Write(UART0,ch);//���ʹ���
// while(RESET == UARTx_ISR_TXSE_Chk(UART0))
// ; //�ȴ��������
-// return ch;
-//}
+// return ch;
+// }
-//�ض���scanf���������� ��˼����˵���ܴ��ڷ����������ݣ���Ĭ���ǽ��ܿ���̨������
+// �ض���scanf���������� ��˼����˵���ܴ��ڷ����������ݣ���Ĭ���ǽ��ܿ���̨������
/*fgetc*/
// int fgetc(FILE * F)
//{
@@ -60,340 +52,240 @@
// }
/*DMA�жϻص���������������startup_xxxx.s�����ļ���Ѱ��*/
-void DMA_IRQHandler(void)
-{
- if((ENABLE == DMA_CHxCR_CHxFTIE_Getable(DMA_CH7))
- &&(SET == DMA_ISR_DMACHFT_Chk(DMA_CH7)))
- {
- //����жϱ�־
- DMA_ISR_DMACHFT_Clr(DMA_CH7);
- }
-}
-
-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)
+// void DMA_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;
+// if((ENABLE == DMA_CHxCR_CHxFTIE_Getable(DMA_CH7))
+// &&(SET == DMA_ISR_DMACHFT_Chk(DMA_CH7)))
+// {
+// //����жϱ�־
+// DMA_ISR_DMACHFT_Clr(DMA_CH7);
// }
-//}
+// }
-
-void RS485_read_data_uart_Init(uint32_t BaudRate,UART_ParityBitTypeDef ParityBit,UART_StopBitTypeDef StopBit)
+void Uart0_Init(void)
{
- UART_SInitTypeDef UART_para;//UART��ʼ���ṹ��
- CMU_ClocksType CMU_Clocks;//ϵͳ��ʱ��Ƶ�ʽṹ�� �ڴ�����㲨�����й�
-
- /*UART0 IO ����*/
- CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱ�ӣ�GPIO��ʹ�ܺ���
- 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�˿��ݲ���Ҫ ֱ��ע�ͼ���
- 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; //��żУ��
- if(ParityBit==NONE)
- UART_para.DataBit = Eight8Bit; //�����
- else
- UART_para.DataBit = Nine9Bit; //�����
- UART_para.StopBit = StopBit; //ֹͣλ
-
- CMU_GetClocksFreq(&CMU_Clocks); //��ȡϵͳ��ʱ��Ƶ��
- UART_SInit(RS485_READ_DATA_UARTX, &UART_para,&CMU_Clocks); //��ʼ��uart
-
-// UARTx_IER_RXBF_IE_Setable(RS485_READ_DATA_UARTX, ENABLE);//���ջ������ж�ʹ�� ��Ҫʹ�ý����жϴ˴�����
-// UARTx_IER_TXSE_IE_Setable(RS485_READ_DATA_UARTX, ENABLE)��//���ͻ�����ҷ�����λ�Ĵ������ж�ʹ�� ��Ҫʹ�÷����жϴ˴�����
-
- NVIC_DisableIRQ(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); //����ʹ��
-
- UARTx_ISR_RXBF_Clr(RS485_READ_DATA_UARTX);
+ 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
+
+ // 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; // ֹͣλ
+
+ CMU_GetClocksFreq(&CMU_Clocks); // ��ȡϵͳ��ʱ��Ƶ��
+ UART_SInit(UART0, &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_SetPriority(UART0_IRQn,2);//�ж����ȼ�����
+ // NVIC_EnableIRQ(UART0_IRQn); //�жϷ�������
+
+ UARTx_CSR_RXEN_Setable(UART0, ENABLE); // ����ʹ��
+ UARTx_CSR_TXEN_Setable(UART0, ENABLE); // ����ʹ��
+
+ UARTx_ISR_RXBF_Clr(UART0);
}
-
-void RS485_read_data_RX_DMA_CH3_Init(void)
+void Uart3_Init(void)
{
- DMA_InitTypeDef DMA_InitStructure;//DMA��ʼ�������ṹ��
-
- CMU_PERCLK_SetableEx(DMACLK, ENABLE);//DMAʱ��ʹ��
- DMA_GCR_DMAEN_Setable(ENABLE);//DMA��ʹ��
-
- DMA_InitStructure.CHx = RS485_READ_DATA_DMA_CHX;//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;//ͨ���������
-
- DMA_InitStructure.CHxFTIE = DISABLE; //ͨ����������ж�ʹ��
- DMA_InitStructure.CHxHTIE = DISABLE; //ͨ���������ն�ʹ��
+ UART_SInitTypeDef UART_para; // UART��ʼ���ṹ��
+ CMU_ClocksType CMU_Clocks; // ϵͳ��ʱ��Ƶ�ʽṹ�� �ڴ�����㲨�����й�
- 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);//ͨ����������ж�ʹ��
+ /*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);
- DMA_ISR_DMACHFT_Clr(RS485_READ_DATA_DMA_CHX);
+ // 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_Init(&DMA_InitStructure);//DMA���ò���д��
+ CMU_GetClocksFreq(&CMU_Clocks); // ��ȡϵͳ��ʱ��Ƶ��
+ UART_SInit(UART3, &UART_para, &CMU_Clocks); // ��ʼ��uart
+
+ // UARTx_IER_RXBF_IE_Setable(MODBUS_UART, ENABLE);//���ջ������ж�ʹ�� ��Ҫʹ�ý����жϴ˴�����
+ // UARTx_IER_TXSE_IE_Setable(MODBUS_UART, ENABLE)��//���ͻ�����ҷ�����λ�Ĵ������ж�ʹ�� ��Ҫʹ�÷����жϴ˴�����
+
+ /*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);
}
-void RS485_read_data_RX_DMA_CH3_reload(void)
+void Uart5_Init(void)
{
- DMA_ISR_DMACHFT_Clr(RS485_READ_DATA_DMA_CHX);
- DMA_CHxCR_ChxEN_Setable(RS485_READ_DATA_DMA_CHX, DISABLE); //ͨ��ʧ��
-
- memset(RS485_read_data_recv_buff,0,sizeof(RS485_read_data_recv_buff));
-
- DMA_CHxMAR_Write(RS485_READ_DATA_DMA_CHX, (uint32)RS485_read_data_recv_buff);
-
- DMA_CHxCR_ChxEN_Setable(RS485_READ_DATA_DMA_CHX, ENABLE); //ͨ��ʹ��
+ UART_SInitTypeDef UART_para; // UART��ʼ���ṹ��
+ CMU_ClocksType CMU_Clocks; // ϵͳ��ʱ��Ƶ�ʽṹ�� �ڴ�����㲨�����й�
+
+ /*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);
+
+ // 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; // ֹͣλ
+
+ 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);
}
-
-//��λ���ӿ�
-void up_comm_uart_Init(uint32_t BaudRate,UART_ParityBitTypeDef ParityBit,UART_StopBitTypeDef StopBit)
+void Uart0_RX_DMA_CH7_Init(void)
{
- UART_SInitTypeDef UART_para;//UART��ʼ���ṹ��
- CMU_ClocksType CMU_Clocks;//ϵͳ��ʱ��Ƶ�ʽṹ�� �ڴ�����㲨�����й�
-
- /*UART0 IO ����*/
- CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱ�ӣ�GPIO��ʹ�ܺ���
- AltFunIO(UP_COMM_TX_PORT, UP_COMM_TX_PIN, ALTFUN_NORMAL);
- AltFunIO(UP_COMM_RX_PORT, UP_COMM_RX_PIN, ALTFUN_NORMAL);
-
- OutputIO(UP_COMM_RE_PORT,UP_COMM_RE_PIN,OUT_PUSHPULL);
- UP_COMM_RE_RECV_EN;
-
- //UART����ʱ��Դѡ�� ֻ��UART0��1��Ҫѡ�� ����UART�˿��ݲ���Ҫ ֱ��ע�ͼ���
- 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; //��żУ��
- if(ParityBit==NONE)
- UART_para.DataBit = Eight8Bit; //�����
- else
- UART_para.DataBit = Nine9Bit; //�����
- UART_para.StopBit = StopBit; //ֹͣλ
-
- CMU_GetClocksFreq(&CMU_Clocks); //��ȡϵͳ��ʱ��Ƶ��
- UART_SInit(UP_COMM_UARTX, &UART_para,&CMU_Clocks); //��ʼ��uart
-
-// 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,4);//�ж����ȼ�����
-// NVIC_EnableIRQ(UP_COMM_UARTX_IRQn); //�жϷ�������
-
- UARTx_CSR_RXEN_Setable(UP_COMM_UARTX, ENABLE); //����ʹ��
- UARTx_CSR_TXEN_Setable(UP_COMM_UARTX, ENABLE); //����ʹ��
-
- UARTx_ISR_RXBF_Clr(UP_COMM_UARTX);
+ 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 up_comm_RX_DMA_CH2_Init(void)
+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 = UP_COMM_DMA_CHX;//DMAͨ��������
- DMA_InitStructure.CHxPRI = DMA_CHxCR_CHxPRI_HIGH;//ͨ�����ȼ�����
- DMA_InitStructure.CHxINC = DMA_CHxCR_CHxINC_INCREASE;//ͨ����ַ��������
- DMA_InitStructure.CHxSSEL = DMA_CHxCR_CH2SSEL_UART5_RX;//����ͨ��ѡ��
- DMA_InitStructure.CHxDIR = DMA_CHxCR_DIR_TO_RAM;//���ݴ��䷽������
- DMA_InitStructure.CHxTSIZE = UP_COMM_RECV_BUFF_LEN_MAX - 1;//ͨ�����䳤��
- DMA_InitStructure.CHxRAMAD = (uint32)up_comm_recv_buff;//Ŀ���ַ
- DMA_InitStructure.CHxBDW = DMA_CHxCR_BDW_8BITS;//ͨ���������
-
- DMA_InitStructure.CHxFTIE = DISABLE; //ͨ����������ж�ʹ��
- DMA_InitStructure.CHxHTIE = DISABLE; //ͨ���������ն�ʹ��
+ DMA_InitTypeDef DMA_InitStructure; // DMA��ʼ�������ṹ��
- 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);//ͨ����������ж�ʹ��
+ CMU_PERCLK_SetableEx(DMACLK, ENABLE); // DMAʱ��ʹ��
+ DMA_GCR_DMAEN_Setable(ENABLE); // DMA��ʹ��
- DMA_ISR_DMACHFT_Clr(UP_COMM_DMA_CHX);
+ 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_Init(&DMA_InitStructure);//DMA���ò���д��
+ 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 up_comm_RX_DMA_CH2_reload(void)
+void Uart5_RX_DMA_CH5_Init(void)
{
- DMA_ISR_DMACHFT_Clr(UP_COMM_DMA_CHX);
- DMA_CHxCR_ChxEN_Setable(UP_COMM_DMA_CHX, DISABLE); //ͨ��ʧ��
-
- memset(up_comm_recv_buff,0,sizeof(up_comm_recv_buff));
-
- DMA_CHxMAR_Write(UP_COMM_DMA_CHX, (uint32)up_comm_recv_buff);
-
- DMA_CHxCR_ChxEN_Setable(UP_COMM_DMA_CHX, ENABLE); //ͨ��ʹ��
+ DMA_InitTypeDef DMA_InitStructure; // DMA��ʼ�������ṹ��
+
+ CMU_PERCLK_SetableEx(DMACLK, ENABLE); // DMAʱ��ʹ��
+ DMA_GCR_DMAEN_Setable(ENABLE); // DMA��ʹ��
+
+ DMA_InitStructure.CHx = DMA_CH5; // DMAͨ��������
+ DMA_InitStructure.CHxPRI = DMA_CHxCR_CHxPRI_HIGH; // ͨ�����ȼ�����
+ DMA_InitStructure.CHxINC = DMA_CHxCR_CHxINC_INCREASE; // ͨ����ַ��������
+ DMA_InitStructure.CHxSSEL = DMA_CHxCR_CH5SSEL_UART5_RX; // ����ͨ��ѡ��
+ DMA_InitStructure.CHxDIR = DMA_CHxCR_DIR_TO_RAM; // ���ݴ��䷽������
+ DMA_InitStructure.CHxTSIZE = GPRS_RECV_LEN_MAX - 1; // ͨ�����䳤��
+ DMA_InitStructure.CHxRAMAD = (uint32)gprs_module_para_g.gprs_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_CH5);
+
+ DMA_Init(&DMA_InitStructure); // DMA���ò���д��
}
-
-
-void WRC_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(WRC_TX_PORT, WRC_TX_PIN, ALTFUN_NORMAL);
- AltFunIO(WRC_RX_PORT, WRC_RX_PIN, ALTFUN_NORMAL);
-
- //UART����ʱ��Դѡ�� ֻ��UART0��1��Ҫѡ�� ����UART�˿��ݲ���Ҫ ֱ��ע�ͼ���
- 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; //��żУ��
- if(ParityBit==NONE)
- UART_para.DataBit = Eight8Bit; //�����
- else
- UART_para.DataBit = Nine9Bit; //�����
- UART_para.StopBit = StopBit; //ֹͣλ
-
- CMU_GetClocksFreq(&CMU_Clocks); //��ȡϵͳ��ʱ��Ƶ��
- UART_SInit(WRC_UARTX, &UART_para,&CMU_Clocks); //��ʼ��uart
-
-// UARTx_IER_RXBF_IE_Setable(WRC_UARTX, ENABLE);//���ջ������ж�ʹ�� ��Ҫʹ�ý����жϴ˴�����
-// UARTx_IER_TXSE_IE_Setable(WRC_UARTX, ENABLE)��//���ͻ�����ҷ�����λ�Ĵ������ж�ʹ�� ��Ҫʹ�÷����жϴ˴�����
-
- NVIC_DisableIRQ(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); //����ʹ��
-
- UARTx_ISR_RXBF_Clr(WRC_UARTX);
-}
-
-
-void WRC_RX_DMA_CH3_Init(void)
-{
- DMA_InitTypeDef DMA_InitStructure;//DMA��ʼ�������ṹ��
-
- CMU_PERCLK_SetableEx(DMACLK, ENABLE);//DMAʱ��ʹ��
- DMA_GCR_DMAEN_Setable(ENABLE);//DMA��ʹ��
-
- DMA_InitStructure.CHx = WRC_DMA_CHX;//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 = WRC_RECV_BUFF_LEN_MAX - 1;//ͨ�����䳤��
- DMA_InitStructure.CHxRAMAD = (uint32)WRC_recv_buff;//Ŀ���ַ
- 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(WRC_DMA_CHX);
-
- DMA_Init(&DMA_InitStructure);//DMA���ò���д��
-}
-
-void WRC_RX_DMA_CH3_reload(void)
-{
- DMA_ISR_DMACHFT_Clr(WRC_DMA_CHX);
- DMA_CHxCR_ChxEN_Setable(WRC_DMA_CHX, DISABLE); //ͨ��ʧ��
-
- memset(WRC_recv_buff,0,sizeof(WRC_recv_buff));
-
- DMA_CHxMAR_Write(WRC_DMA_CHX, (uint32)WRC_recv_buff);
-
- DMA_CHxCR_ChxEN_Setable(WRC_DMA_CHX, ENABLE); //ͨ��ʹ��
-}
-
-
/*��ͨ������ʽ����������*/
-void UARTx_SendData_Normal(UART_Type* UARTx,uint8_t * pSendData,uint16_t send_len)
+void UARTx_SendData_Normal(UART_Type *UARTx, uint8_t *pSendData, uint16_t send_len)
{
- for(uint16_t i= 0; i < send_len; i++)
- {
- UARTx_TXBUF_Write(UARTx, pSendData[i]); //����������д�뷢�ͼĴ���
- while(RESET == UARTx_ISR_TXSE_Chk(UARTx)); //�ȴ��������
- }
+ for (uint16_t i = 0; i < send_len; i++)
+ {
+ IWDT_Clr();
+ UARTx_TXBUF_Write(UARTx, pSendData[i]); // ����������д�뷢�ͼĴ���
+ while (RESET == UARTx_ISR_TXSE_Chk(UARTx))
+ ; // �ȴ��������
+ }
+#if Debug_Model
+ printf("MCU->%s ", UARTx == UART5 ? "PC" : UARTx == UART1 ? "UART1"
+ : "UART1");
+ for (uint16_t i = 0; i < send_len; i++)
+ {
+ IWDT_Clr();
+ printf("0x%02x ", pSendData[i]);
+ }
+ printf("\r\n");
+#endif
}
void UARTx_SendData_IT(void)
{
-
}
void UARTx_SendData_DMA(void)
{
-
}
-
--
Gitblit v1.9.3