串口设置OK,波特率OK.
void Serial(void) interrupt 4 using 1
{
TI=0;RI=0;
////////////////////////////////////////////////////////////////////
switch(Moden)
{
case 1:
{
switch(Recive)
{
case 0:{if(RB8==1&&SBUF==0)Recive=1;return;}
case 1:{if(RB8==0){Num=SBUF;Recive=0;return;}else Recive=0;}
default:Recive=0;return;
}
break;}
case 2:
{
switch(Drive)
{
case 0:{Drive=1;TB8=1;SBUF=0;return;}
case 1:{Drive=0;TB8=0;if(Num>5){Num=0;}delay(200);return;}
default:Drive=0;return;
}
break;}
default :break;
}
}
void colorm()
{
switch(Num)
{
case 0:Red=Green=1;break;
case 1:Red=1;Green=0;break;
case 2:Red=0;Green=1;break;
case 3:Red=1;Green=0;break;
case 4:Red=0;Green=1;break;
//case 5:Red=Green=1;break;
default :Red=Green=0;Num=0;break;
}
SBUF = Num;//把Num给SBUF,**********************************
delay(500);
if(Moden==2){Num++;}
delay(65500);
delay(65500);
delay(65500);
}
怎么设置标志位呢?我想SBUF=Num; Num初始为0,Num++,不停的发送Num的新值,该怎样设计,求教
追答我想SBUF=Num; Num初始为0,Num++,不停的发送Num....
----
这样有规律的数据,发给谁?
对方要是单片机,让它自己加,这里发送一个启动命令,即可。
发送这样有规律的数据,并无意义。
======
另外:
void Serial(void) interrupt 4 using 1
{
TI=0;RI=0; --在这里,都清零了,往下,怎么知道是发送中断,还是接收中断?
///////////////////////--不论发送、接收,往下,都执行一样的程序?
对方是单片机 我要保证发送的数据与对方接受的数据时刻保持同步,比如主机先开机,走了一个程序以后,从机在开机,慢了一步 。 我要保证接收方跟主机同步,
追答一个一个的,都是有效数据,没有校验数据。
万一,传输中出现差错,对方就无法判断正误,会造成误操作。
主机发送的时候不接收任何数据 从机接受数据的时候不发送 怎么设计比较合理
追答参考一下:
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/4b0c0e1e9c479c16314e1515.html
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/daded23e6bb0a4f555e723de.html