两个板子,一个做客户机,一个做服务器。
客户机的运行原则是,先发送,再等响应,一般等响应会有超时设置。
[C] 纯文本查看 复制代码
int main(void){ _Init(); // 客户端程序,先发送,然后等待接收响应(一般规定超时)。如此循环。 { u8 lBuffer[33]; u8 i = 0; while(i < 100) { oWireless(WIRELESS1, gEnvironment.Channel, "%032d", i); if(iWireless(WIRELESS1, gEnvironment.Channel, lBuffer) == TRUE) // iWireless 内部差不多 700ms 会超时 i = fun_StringToNumber(lBuffer, 0, 32) + 1; } } while(TRUE) { LED1 = !LED1; Wait_s(2); } }
服务器的运行原则是,先无限等, 收到后,再发送响应,一般发送后可不理会。
[C] 纯文本查看 复制代码
int main(void){ _Init(); oVoice("sound218[p1000]欢迎使用欧文特斯体质测试系统"); l5_SetTestRunningState(FALSE); // 服务器程序,无限收,收到后发送。如此循环 { u8 lBuffer[33]; u8 i; while(i < 100) { while(iWireless(WIRELESS1, gEnvironment.Channel, lBuffer) == FALSE) { ;} i = fun_StringToNumber(lBuffer, 0, 32) + 1; oWireless(WIRELESS1, gEnvironment.Channel, "%032d", i); } } while(TRUE) { LED1 = !LED1; Wait_s(2); } }
双方
通信的过程是在互相发送一个数,收到后递增返回,对方收到后再递增返回。最终双方将这个数增加到100,退出。