modbus_rtu通信時沒有連接過程,主機和從機各自初始化自身串口就行了,而rtu需要確定從機ID。
注:在TCP連接中,不同的網卡有不同的IP,port對應具體的程序。
/* 先讀取數據 */for (i = 0; i < len; i++){if (pdPASS != xQueueReceive(recv_queue, &buf[i], 0))break;}/* 如果沒有數據才等待 之所以這樣做是因為如果隊列有100字節數據,第一次只讀10字節的話,下次再讀就只能等待重新得到信號量了,因此會造成接收延遲*/if (i == 0)//說明隊列里為空,一個都沒讀到,這時才阻塞等待{xSemaphoreTake(ptDev->sockets[socket].at_packet_sem, portMAX_DELAY);}/* 讀取數據 */for (; i < len; i++){if (pdPASS != xQueueReceive(recv_queue, &buf[i], 0))break;}