forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-06-19 6e3f1f560d618b37ee1a47fa2b0f682b70c3ef1c
Function/FLOW_METER_DATA_COLLECT/rs485_read_data.c
@@ -5,6 +5,7 @@
#include "gpio.h"
#include "uart.h"
#include "linked_list.h"
#include "sizhu_alarm_record.h"
/****ÕûÌå¿ØÖÆË¼Â·******************
*RS485ÕûÌå¿ØÖÆ·ÖΪÉϵ硢·¢ËͶÁȡָÁî¡¢µÈ´ý½ÓÊÕÊý¾Ý²¢´¦ÀíÈý¸ö״̬»ú²½Ö裻¿ÉÒÔʵÏֵȴý³¬Ê±ÅжϺͶà´ÎÖØ¶Á¡£
@@ -83,6 +84,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;//½ÓÊÕÍê³É
@@ -239,6 +242,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);
@@ -258,20 +262,22 @@
   
   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 ) ;//?É豸´úÂë¡¢´Ó»úµØÖ·Èë²ÎÒª¸Ä
      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){
      if(rs485_com_ctrl_pata_g.modbus_step_status >= rs485_com_ctrl_pata_g.modbus_last_status)  {
         //?´ú±íͨѶȫ²¿³É¹¦£¬½øÐÐÏàÓ¦µÄ´¦Àí
         //´ú±íͨѶȫ²¿³É¹¦£¬½øÐÐÏàÓ¦µÄ´¦Àí
         //¹Ø±ÕµçÔ´¡¢¹Ø±Õ´®¿Ú
         RS485_PWR_OFF;
         RS485_RE_REC_ENABLE;
@@ -293,7 +299,7 @@
   
   if((--rs485_com_ctrl_pata_g.reread_wait_time_cnt)==0){
      if((--rs485_com_ctrl_pata_g.reread_num_cnt)==0){
         //?³¬Ê±ÇÒÖØ¶Á´ÎÊýÓÃÍ꣬´ú±íͨѶ×îÖÕÒÔʧ°Ü¸æÖÕ£¬½øÐÐÏàÓ¦µÄ´¦Àí
         //³¬Ê±ÇÒÖØ¶Á´ÎÊýÓÃÍ꣬´ú±íͨѶ×îÖÕÒÔʧ°Ü¸æÖÕ£¬½øÐÐÏàÓ¦µÄ´¦Àí
         //¹Ø±ÕµçÔ´¡¢¹Ø±Õ´®¿Ú£¬RS485ͨѶʧ°Ü+1,
         RS485_PWR_OFF;
         RS485_RE_REC_ENABLE;