forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-05-20 e61d1595ebb1fa76b499cddec2df4bd66ec92b97
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;   
@@ -218,7 +218,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;
@@ -249,7 +249,7 @@
}
#define RS485_READ_ERR_ALARM_TIMES   2  //Á¬ÐøRS485_READ_ERR_ALARM_TIMES´Îʧ°Ü±¨¾¯RS485Òì³£
#define RS485_READ_ERR_ALARM_TIMES   1  //Á¬ÐøRS485_READ_ERR_ALARM_TIMES´Îʧ°Ü±¨¾¯RS485Òì³£
RS485_COM_STATUS_T   rs485ComWaitAnswerHandle(void)
{
   static uint8_t   RS485_err_cnt =0 ; //¶Áȡʧ°Ü¼ÆÊý
@@ -263,6 +263,8 @@
      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){
@@ -301,7 +303,7 @@
         RS485_UART_GPIO_sleep();
         if(RS485_err_cnt < 250){
            if( ++RS485_err_cnt >= RS485_READ_ERR_ALARM_TIMES)
               __SYS_STATUS_ALARM_BYTES_SET(RS485_err);
               __SYS_STATUS_ALARM_BYTES_SET(RS485_err,ALARM_ID_READ_485_ABNORMAL);
         }
      
         return RS485_COM_IDLE;
@@ -326,7 +328,6 @@
         rs485_com_ctrl_pata_g.status = RS485_COM_PWR_ON;
         sys_fun_run_ctrl_p->rs485_ctrl_flag.running_flag = SET;
      }
   }
   
   switch (rs485_com_ctrl_pata_g.status){