#include "rs485_read_data.h" #include "rs485_data_analysis_pro.h" __IO RS485_COM_STATUS_T rs485_com_status_g = RS485_COM_IDLE; //¸ù¾ÝÉ豸´úÂë´¦Àí£¬²¢·µ»Ø¹©µçÑÓʱʱ¼äms uint16_t rs485GetDelayTime(uint16_t device_code) { //ÓÉÓÚ±¾Éí¹¤×÷ÖÜÆÚÊÇ1ÃëÒ»´Î£¬ËùÒÔÑÓʱµÄ²½½øÊÇ1000ms£¬ ±ÈÈçÊýÖµÔÚ0-1000msÖ®¼ä£¬Êµ¼ÊÑÓʱ¶¼Îª1Ãë×óÓÒ£¬ ÊýÖµÔÚ1000-2000msÖ®¼ä£¬Êµ¼ÊÑÓʱ¶¼Îª2Ãë×óÓÒ switch (device_code){ case SIZHUMODBUS1: return 900; case SIZHUMODBUS2: return 900; case SIZHUMODBUS3: return 900; case SIZHUMODBUSV2_0: return 900; case TIANXINCUSTOM: return 900; case TIANXINMODBUS: return 900; //ÐèÒª²¹³ä...... default:return 100; } } RS485_COM_STATUS_T rs485ComPwrOnHandle(void) { uint16_t delay_time; //IO¿Ú³õʼ»¯ //´ò¿ª¹©µç //´ò¿ª¶¨Ê±Æ÷Öжϣ¬²»Í¬É豸¹©µçÑÓʱ²»µÈ£¬Òª²»Òª¿¼Âǹ©µçºó¿ÉÒÔÁ¢Âí¶ÁÈ¡µÄÇé¿ö£¿ delay_time = rs485GetDelayTime(SIZHUMODBUSV2_0); } void rs485ReadDataPro(void) { if(1)//ÅжÏ485²É¼¯±êʶ { if(rs485_com_status_g == RS485_COM_IDLE) { rs485_com_status_g = RS485_COM_PWR_ON; } } switch (rs485_com_status_g){ case RS485_COM_IDLE: break; case RS485_COM_PWR_ON: break; case RS485_COM_SEND: break; case RS485_COM_WAIT_ANSWER: break; case RS485_COM_TIMEOUT: break; case RS485_COM_OFF: break; default:; } }