要用做一个1对6无线测温系统,我想用轮询的方式实现。
主机向从机发送数据请求,从在收到请求后发送数据,主机在规定时间内不管收没有收到从机数据都跳到下一个从机。
现在的问题是从机能收到主机的数据请求指令,但不能返回数据给主机。
这是我的主机无线通信程序,TxPacket(x)是给从机x发送时数据请求。
void Communicate()
{
uchar x;
for(x=1;x<7;x++)
{
uint i=1000;
SetTxMode();
TxPacket(x);
SetRxMode();
while(!i)
{
if (DR)
RxPacket();
else
{
i--;
}
}
}
}
这个程序调试时主机老是收不到从机发回的数据,设过很多不同的i值都不行。。
麻烦大家看看这程序该怎么改。或是有其它的通信方法麻烦告知一下,谢谢!
------解决方案--------------------
中间等待从机回复的时间太短了~~建议楼主先调同一台主机轮询一台从机~~