From 65062d0d5b21f838aa0043a15ce54cfab8d72c43 Mon Sep 17 00:00:00 2001
From: wujiazhi <1147861305@qq.com>
Date: Tue, 11 Jun 2024 14:23:53 +0800
Subject: [PATCH] 1.Fixed communication failure between MCU and wireless module 2.Fix the wrong judgment of alkaline lithium power
---
Function/PROJECT_TETS/project_test.c | 144 ++++++++++++++++++++++++++---------------------
1 files changed, 79 insertions(+), 65 deletions(-)
diff --git a/Function/PROJECT_TETS/project_test.c b/Function/PROJECT_TETS/project_test.c
index 297efa3..6af8e9c 100644
--- a/Function/PROJECT_TETS/project_test.c
+++ b/Function/PROJECT_TETS/project_test.c
@@ -15,6 +15,7 @@
volatile uint32_t delay_time = 0;
volatile uint32_t delay_time1 = 0;
volatile uint32_t delay_time2 = 0;
+
// int low_push_flag = 0;
// int alka_lose_flag = 0;
// int lith_lose_flag = 0;
@@ -43,15 +44,15 @@
printf("\r\n");
}
-#if 1
-int fputc(int ch, FILE *f)
-{
- UARTx_TXBUF_Write(UART5, (uint8_t)ch); // ���ʹ���
- while (RESET == UARTx_ISR_TXSE_Chk(UART5))
- ; // �ȴ��������
- return ch;
-}
-#endif
+
+ int fputc(int ch, FILE *f)
+ {
+ UARTx_TXBUF_Write(UART5, (uint8_t)ch); // ���ʹ���
+ while (RESET == UARTx_ISR_TXSE_Chk(UART5))
+ ; // �ȴ��������
+ return ch;
+ }
+
void Timer_Init(uint32_t psc, uint32_t arr_value)
{
CMU_PERCLK_SetableEx(BSTIMCLK, ENABLE); // ��������ʱ��ʹ��
@@ -98,12 +99,12 @@
CMU_ClocksType CMU_Clocks; // ϵͳ��ʱ��Ƶ�ʽṹ�� �ڴ�����㲨�����й�
DMA_InitTypeDef DMA_InitStructure; // DMA��ʼ�������ṹ��
- /*UART0 IO ����*/
+ /*UART5 IO ����*/
CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱ�ӣ�GPIO��ʹ�ܺ���
AltFunIO(GPIOA, GPIO_Pin_8, ALTFUN_NORMAL); // ��λ��RS485�ڵ����ݽ��ա��ýӿ������ʱ����Ч��
AltFunIO(GPIOA, GPIO_Pin_9, ALTFUN_NORMAL); // ��λ��RS485�ڵ����ݷ���
OutputIO(GPIOA, GPIO_Pin_10, OUT_PUSHPULL); // UART1_RE ��λ��RS485�ڵ��շ����ƣ��߷����գ�
- UART1_RE_ON;
+ UART5_RE_ON;
UART_para.BaudRate = 115200;
UART_para.DataBit = Eight8Bit; // �����
@@ -165,10 +166,10 @@
UARTx_CSR_TXEN_Setable(UART1, ENABLE); // ����ʹ��
UARTx_ISR_RXBF_Clr(UART1);
- DMA_InitStructure.CHx = DMA_CH9; // DMAͨ��������
+ 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_CH9SSEL_UART1_RX; // ����ͨ��ѡ��
+ DMA_InitStructure.CHxSSEL = DMA_CHxCR_CH3SSEL_UART1_RX; // ����ͨ��ѡ��
DMA_InitStructure.CHxDIR = DMA_CHxCR_DIR_TO_RAM; // ���ݴ��䷽������
DMA_InitStructure.CHxTSIZE = UC_RECV_LEN_MAX - 1; // ͨ�����䳤��
DMA_InitStructure.CHxRAMAD = (uint32)rs485_modeule_pagra.rs485_recv_buf; // Ŀ���ַ
@@ -178,7 +179,7 @@
DMA_InitStructure.CHxEN = ENABLE; // ͨ��ʹ��
NVIC_DisableIRQ(DMA_IRQn);
- DMA_ISR_DMACHFT_Clr(DMA_CH9);
+ DMA_ISR_DMACHFT_Clr(DMA_CH3);
DMA_Init(&DMA_InitStructure); // DMA���ò���д��
#else
@@ -187,10 +188,8 @@
/*UART1 IO ����*/
CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱ�ӣ�GPIO��ʹ�ܺ���
- AltFunIO(GPIOB, GPIO_Pin_0, ALTFUN_NORMAL); // PB0 UART1 RX
- AltFunIO(GPIOB, GPIO_Pin_1, ALTFUN_NORMAL); // PB1 UART1 TX
- OutputIO(GPIOA, GPIO_Pin_14, OUT_PUSHPULL); // EQUIP RE
- OutputIO(GPIOA, GPIO_Pin_15, OUT_PUSHPULL); // 485_PWR_EN
+ AltFunIO(GPIOE, GPIO_Pin_3, ALTFUN_NORMAL); // PE3 UART1 RX
+ AltFunIO(GPIOE, GPIO_Pin_4, ALTFUN_NORMAL); // PE4 UART1 TX
// UART����ʱ��Դѡ�� ֻ��UART0��1��Ҫѡ�� ����UART�˿��ݲ���Ҫ
UART_para.ClockSrc = CMU_OPCCR1_UART1CKS_APBCLK; // UART1����ʱ��ѡ��
UART_para.BaudRate = 115200;
@@ -202,7 +201,7 @@
/*NVIC�ж����ȼ��Լ��Ƿ���ж�����*/
NVIC_DisableIRQ(UART1_IRQn);
- UARTx_TODR_RXTO_LEN_Set(UART1, 255);
+ UARTx_TODR_RXTO_LEN_Set(UART1, 255); // ֻ��uart0��uart1�н��ճ�ʱ�ж�
UARTx_ISR_RXTO_Clr(UART1);
UARTx_IER_RXTO_IE_Setable(UART1, ENABLE);
NVIC_EnableIRQ(UART1_IRQn);
@@ -211,10 +210,10 @@
UARTx_CSR_RXEN_Setable(UART1, ENABLE); // ����ʹ��
UARTx_CSR_TXEN_Setable(UART1, ENABLE); // ����ʹ��
UARTx_ISR_RXBF_Clr(UART1);
- DMA_InitStructure.CHx = DMA_CH9; // DMAͨ��������
+ 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_CH9SSEL_UART1_RX; // ����ͨ��ѡ��
+ DMA_InitStructure.CHxSSEL = DMA_CHxCR_CH3SSEL_UART1_RX; // ����ͨ��ѡ��
DMA_InitStructure.CHxDIR = DMA_CHxCR_DIR_TO_RAM; // ���ݴ��䷽������
DMA_InitStructure.CHxTSIZE = UC_RECV_LEN_MAX - 1; // ͨ�����䳤��
DMA_InitStructure.CHxRAMAD = (uint32)gprs_module_para_g.gprs_recv_buf; // Ŀ���ַ
@@ -223,8 +222,9 @@
DMA_InitStructure.CHxHTIE = DISABLE; // ͨ���������ն�ʹ��
DMA_InitStructure.CHxEN = ENABLE; // ͨ��ʹ��
NVIC_DisableIRQ(DMA_IRQn);
- DMA_ISR_DMACHFT_Clr(DMA_CH9);
+ DMA_ISR_DMACHFT_Clr(DMA_CH3);
DMA_Init(&DMA_InitStructure); // DMA���ò���д��
+ // memset(gprs_module_para_g.gprs_recv_buf, 0, sizeof(gprs_module_para_g.gprs_recv_buf));
#endif
}
@@ -337,21 +337,22 @@
LED_TOG;
printf("circulate tun on led\r\n");
}
+ IWDT_Clr();
}
void project_test_2(void)
{
-
- if (HWID0_READ == 0)
- {
- EX_PWR_EN_H;
- }
- else
- {
- EX_PWR_EN_L;
- }
- // Gprs_Uart1_Rx_DMA_CH5_Check();
- // Gprs_Uart5_Receive_Data();
+ IWDT_Clr();
+ // if (HWID0_READ == 0)
+ // {
+ // EX_PWR_EN_H;
+ // }
+ // else
+ // {
+ // EX_PWR_EN_L;
+ // }
+ Gprs_Uart1_Rx_DMA_CH3_Check();
+ Gprs_Uart1_Receive_Data();
if ((GPIO_ReadInputDataBit(GPIOF, GPIO_Pin_14) == 0) || (GPIO_ReadInputDataBit(GPIOF, GPIO_Pin_15) == 0)) // �̰� key3 �����Ϸ�+�����Ϸ�
{
delay_ms(50);
@@ -360,7 +361,10 @@
printf("Turn_On power 3.3v and send gprs\r\n");
GPRS_POWER_ON; // 3.8V ʹ������
GPRS_POWER_EN_H; // ������ģ���Դ
- GPRS_Send_process();
+ delay_ms(500);
+ IWDT_Clr();
+ Gprs_Open();
+ //GPRS_Send_process();
}
if (GPIO_ReadInputDataBit(GPIOF, GPIO_Pin_15) == 0) // key2 �ϰ��������
{
@@ -412,7 +416,7 @@
press_duration = Sys_GetTick() - press_start_time;
if (press_duration < SHORT_PRESS_TIME) // 12v
{
- if (GPIO_ReadInputDataBit(GPIOH, GPIO_Pin_0) == 1) // ������
+ if (GPIOH_ReadInputDataBit(GPIO_Pin_0) == 1) // ������
{
OUTPUT1_EN_ON;
power12V_ON;
@@ -435,6 +439,7 @@
BOOST_EN_ON;
}
}
+ IWDT_Clr();
last_button_state = button_pressed;
}
@@ -449,7 +454,7 @@
void project_test_5(void) // ���� �����
{
- if (GPIO_ReadInputDataBit(LOWPLUSE_PIN_GROUP, LOWPLUSE_PIN_NUM) == 0) // ������
+ if (GPIOH_ReadInputDataBit(LOWPLUSE_PIN_NUM) == 0) // ������
{
// low_push_flag = 0;
for (int i = 0; i < 3; i++) // led ����3��
@@ -501,6 +506,7 @@
float mcu_temp = 0;
void project_test_6(void) // ��ز��������紥��
{
+ IWDT_Clr();
if (Sys_GetTick() - delay_time > 10000)
{
delay_time = Sys_GetTick();
@@ -510,12 +516,12 @@
printf("alka vcc =%.2f\r\n", pwr_vol_g.alka_vcc);
printf("lith vcc = %.2f \r\n", pwr_vol_g.lith_vcc);
printf("mcu_temperature %.1f\r\n", mcu_temp);
- if (GPIO_ReadInputDataBit(GPIOH, GPIO_Pin_0) == 0)
+ if (GPIOH_ReadInputDataBit(GPIO_Pin_0) == 0)
{
// alka_lose_flag = 0;
printf("alka lose\r\n");
}
- if (GPIO_ReadInputDataBit(LITH_BAT_LOW_PWR_PIN_GROUP, LITH_BAT_LOW_PWR_PIN_NUM) == 0)
+ if (GPIOH_ReadInputDataBit(LITH_BAT_LOW_PWR_PIN_NUM) == 0)
{
// lith_lose_flag = 0;
printf("lith lose\r\n");
@@ -525,11 +531,9 @@
void project_test_7(void) // Һ��ȫ��ʾ
{
-#if 1
LCD_driver_init_new();
LCD_Clear_NEW();
LCD_All_Display_new();
-#endif
}
void Project_Test_8(void) // ���
@@ -603,8 +607,8 @@
uint32_t total_ticks = msTicks * arr_value;
float measured_frequency = (float)total_ticks * psc;
float error_percentage = ((measured_frequency - SYS_CLOCK_HZ) / SYS_CLOCK_HZ) * 100;
- printf("Measured Frequency: %.2f Hz\n", measured_frequency);
- printf("Error Percentage: %.2f%%\n", error_percentage);
+ printf("Measured Frequency: %.2f Hz\r\n", measured_frequency);
+ printf("Error Percentage: %.2f%%\r\n", error_percentage);
BSTIM_CR1_CEN_Setable(ENABLE);
}
@@ -616,6 +620,7 @@
delay_time1 = Sys_GetTick();
// Time_Set(0x24, 06, 04, 02, 0x0E, 0x26, 0x50);
Get_Time();
+ IWDT_Clr();
}
}
@@ -623,6 +628,7 @@
{
if (uc_recv_para_g.uc_recv_flag == SET)
{
+ IWDT_Clr();
printf("MCU<-PC ");
for (uint16_t i = 0; i < uc_recv_para_g.uc_recv_length; i++)
{
@@ -640,6 +646,7 @@
printf("MCU<-modbus ");
for (uint16_t i = 0; i < rs485_modeule_pagra.rs485_recv_length; i++)
{
+ IWDT_Clr();
printf("0x%02x ", rs485_modeule_pagra.rs485_recv_buf[i]);
}
printf("\r\n");
@@ -647,7 +654,7 @@
}
}
-void Gprs_Uart5_Receive_Data(void)
+void Gprs_Uart1_Receive_Data(void)
{
if (gprs_module_para_g.gprs_recv_flag == SET)
{
@@ -664,14 +671,14 @@
void Rs485_Uart1_Rx_DMA_CH5_Check(void)
{
uint16_t timeout_cnt = 0, dma_recv_cnt;
- uint32_t dma_mar_reg_read = DMA_CHxMAR_Read(DMA_CH9);
+ uint32_t dma_mar_reg_read = DMA_CHxMAR_Read(DMA_CH3);
if (dma_mar_reg_read != (uint32)rs485_modeule_pagra.rs485_recv_flag)
{
delay_ms(2);
- while (dma_mar_reg_read != DMA_CHxMAR_Read(DMA_CH9))
+ while (dma_mar_reg_read != DMA_CHxMAR_Read(DMA_CH3))
{
- dma_mar_reg_read = DMA_CHxMAR_Read(DMA_CH9);
+ dma_mar_reg_read = DMA_CHxMAR_Read(DMA_CH3);
delay_ms(2);
if (timeout_cnt++ > 100)
break;
@@ -683,12 +690,12 @@
{
rs485_modeule_pagra.rs485_recv_length = dma_recv_cnt;
// ����RAM��ַ����
- DMA_ISR_DMACHFT_Clr(DMA_CH5);
- DMA_CHxCR_ChxEN_Setable(DMA_CH5, DISABLE); // ͨ��ʧ��
+ DMA_ISR_DMACHFT_Clr(DMA_CH3);
+ DMA_CHxCR_ChxEN_Setable(DMA_CH3, DISABLE); // ͨ��ʧ��
- DMA_CHxMAR_Write(DMA_CH5, (uint32)rs485_modeule_pagra.rs485_recv_buf);
+ DMA_CHxMAR_Write(DMA_CH3, (uint32)rs485_modeule_pagra.rs485_recv_buf);
- DMA_CHxCR_ChxEN_Setable(DMA_CH5, ENABLE); // ͨ��ʹ��
+ DMA_CHxCR_ChxEN_Setable(DMA_CH3, ENABLE); // ͨ��ʹ��
rs485_modeule_pagra.rs485_recv_flag = SET; // �������
}
}
@@ -697,31 +704,38 @@
uint8_t Rs485_Read_ARR[8] = {0X01, 0X03, 0X0D, 0XAD, 0X00, 0X0E, 0X57, 0X43}; // ��ȡ����������ѹ��
void project_test_11(void) // RS485 UART1 �շ�����
{
- IR_Uart5_Rx_DMA_CH5_Check();
+ //IR_Uart5_Rx_DMA_CH5_Check();
Rs485_Uart1_Rx_DMA_CH5_Check();
- Uart5_Receive_Data();
+ // Uart5_Receive_Data();
Rs485_Uart1_Receive_Data();
- if (Sys_GetTick() - delay_time2 > 7000)
+ if (Sys_GetTick() - delay_time2 > 10000)
{
delay_time2 = Sys_GetTick();
- UART1_RE_ON;
- RS485_Send_date_uart(arr_test, 1);
+ // UART5_RE_ON;
+ // RS485_Send_date_uart(arr_test,1);
+ // UART5_RE_OFF;
+
OUTPUT1_EN_ON;
BOOST_EN_ON;
delay(1000); // ������
EQUIP_RE_ON;
- RS485_Send_date_Equip(Rs485_Read_ARR, 8);
+ delay_ms(5);
+ IWDT_Clr();
+ RS485_Send_date_Equip(Rs485_Read_ARR, sizeof(Rs485_Read_ARR));
+ delay_ms(5);
EQUIP_RE_OFF;
- }
+ IWDT_Clr();
+ }
}
void Project_Test(void)
{
- project_test_1(); // led ������˸
- project_test_2(); // key3 �����Ϸ� ke2 �̰�����
- project_test_3(); // SEPIC��Դ��� key1 (��������:�̰�12v ����4s 5V ���� 6s 9v)
- // project_test_5(); // ���� �����
- project_test_6(); // �ɼ���ѹ mcu �¶� ������
- Project_Test_8(); // ������ ���Ǽӣ��������裩���ɻƼ��
- project_test_10(); // RTC(�ⲿʱ�ӻ�ȡ)
- project_test_11(); // uart5 uart5 ͨ�ż��
+ project_test_1(); // led ������˸
+ project_test_2(); // key3 �����Ϸ� ke2 �̰�����
+ project_test_3(); // SEPIC��Դ��� key1 (��������:�̰�12v ����4s 5V ���� 6s 9v)
+ project_test_5(); // ���� �����
+ project_test_6(); // �ɼ���ѹ mcu �¶� ������
+ Project_Test_8(); // ������ ���Ǽӣ��������裩���ɻƼ��
+ project_test_10(); // RTC(�ⲿʱ�ӻ�ȡ)
+// project_test_11(); // uart5 uart1ͨ�ż��
+ IWDT_Clr();
}
\ No newline at end of file
--
Gitblit v1.9.3