| | |
| | | #include "gpio.h" |
| | | #include "uart.h" |
| | | #include "linked_list.h" |
| | | #include "sizhu_alarm_record.h" |
| | | |
| | | /****ÕûÌå¿ØÖÆË¼Â·****************** |
| | | *RS485ÕûÌå¿ØÖÆ·ÖΪÉϵ硢·¢ËͶÁȡָÁî¡¢µÈ´ý½ÓÊÕÊý¾Ý²¢´¦ÀíÈý¸ö״̬»ú²½Ö裻¿ÉÒÔʵÏֵȴý³¬Ê±ÅжϺͶà´ÎÖØ¶Á¡£ |
| | |
| | | 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;//½ÓÊÕÍê³É |
| | |
| | | |
| | | 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); |
| | |
| | | |
| | | 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; |
| | |
| | | |
| | | 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; |