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] 继续测试修改
---
Function/FLOW_METER_DATA_COLLECT/rs485_read_data.c | 23 ++++++++++++++++-------
1 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/Function/FLOW_METER_DATA_COLLECT/rs485_read_data.c b/Function/FLOW_METER_DATA_COLLECT/rs485_read_data.c
index bd13167..371a43e 100644
--- a/Function/FLOW_METER_DATA_COLLECT/rs485_read_data.c
+++ b/Function/FLOW_METER_DATA_COLLECT/rs485_read_data.c
@@ -66,12 +66,12 @@
void RS485_read_data_RX_DMA_check(void)
{
uint16_t timeout_cnt = 0,dma_recv_cnt;
- uint32_t dma_mar_reg_read = DMA_CHxMAR_Read(DMA_CH3);
+ uint32_t dma_mar_reg_read = DMA_CHxMAR_Read(RS485_READ_DATA_DMA_CHX);
if(dma_mar_reg_read != (uint32)RS485_read_data_recv_buff){
delay_ms(2);
- while(dma_mar_reg_read != DMA_CHxMAR_Read(DMA_CH3)){
- dma_mar_reg_read = DMA_CHxMAR_Read(DMA_CH3);
+ while(dma_mar_reg_read != DMA_CHxMAR_Read(RS485_READ_DATA_DMA_CHX)){
+ dma_mar_reg_read = DMA_CHxMAR_Read(RS485_READ_DATA_DMA_CHX);
delay_ms(2);
if(timeout_cnt++ > 100)
break;
@@ -83,6 +83,8 @@
dma_recv_cnt = dma_mar_reg_read - (uint32)RS485_read_data_recv_buff;
if(dma_recv_cnt)
{
+ if((dma_recv_cnt >= RS485_READ_DATA_RECV_BUFF_LEN_MAX)||(dma_recv_cnt >= WRC_REC_BUF_LENGTH))
+ return;
rs485_com_uart_data_g.recv_length = dma_recv_cnt;
arrayA_2_arrayB(RS485_read_data_recv_buff , rs485_com_uart_data_g.recv_buf, dma_recv_cnt, LITTLE_ENDIAN) ;
rs485_com_uart_data_g.recv_flag = SET;//�������
@@ -218,7 +220,7 @@
if(rs485_com_ctrl_pata_g.pwr_delay_time_out_cnt == 0) //��ʱ��0�Ϳ��Է��Ͷ�ȡָ��
{
//��������
- RS485_UART_GPIO_Init();
+// RS485_UART_GPIO_Init(); //uart_Init�Ѿ�������IO����
switch(flow_meter_para_g.baudrate_code ){
case BAUDRATE_1200:BaudRate = 1200; break;
case BAUDRATE_2400:BaudRate = 2400; break;
@@ -239,6 +241,7 @@
RS485_read_data_uart_Init(BaudRate,ParityBit,OneBit);
RS485_read_data_RX_DMA_CH3_Init();
+ uart_ctrl_para_g.RS485_rxto_flag = RESET;
RS485_PWR_ON;
delay_us(10);
@@ -246,6 +249,8 @@
rs485_com_ctrl_pata_g.reread_wait_time_cnt = RS485_REREAD_WATI_TIME; //���õȴ���Ӧʱ��
return RS485_COM_WAIT_ANSWER;
}
+
+ return RS485_COM_SEND;
}
@@ -256,13 +261,17 @@
ErrorStatus read_ok = FAIL;
//��鴮������
- RS485_read_data_RX_DMA_check();
-
+ if(uart_ctrl_para_g.RS485_rxto_flag ==SET){
+ uart_ctrl_para_g.RS485_rxto_flag = RESET;
+ RS485_read_data_RX_DMA_check();
+ }
//��������,����ɹ���������read_ok = PASS
if(rs485_com_uart_data_g.recv_flag == SET){
rs485_com_uart_data_g.recv_flag =RESET;
read_ok = rs485ComDataAnalysis(rs485_com_uart_data_g,SIZHUMODBUSV2_0,1,rs485_com_ctrl_pata_g ) ;//?�豸���롢�ӻ���ַ���Ҫ��
+ memset(rs485_com_uart_data_g.recv_buf, 0, sizeof(rs485_com_uart_data_g.recv_buf)); //Ӧ�������ս���
+
}
if(read_ok==PASS){
@@ -344,4 +353,4 @@
RS485_trigger_settle_flag = SET; //RS485�ɼ�֮��һ�ν���
}
}
-}
\ No newline at end of file
+}
--
Gitblit v1.9.3