|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
问题描述:程序本意是想实现接收主机发来的字符串,格式c01010001111000101010w,c为数据开始,w为数据结束标志位,串口传输方式为文本模式,如果接收到字符‘0’或‘1’,则转换成int型0或1。最终结果的低八位通过P1口,输出到发光二极管用来验证结果的正确性。
但程序运行时,二极管并没有反应,(主机pc发送没有问题)。
请前辈们,看看以下程序哪地方有问题,谢谢啦
void UART_SER (void) interrupt 4 //串行中断服务程序
{
unsigned int a,b,count;
unsigned int cw[21];
if(TI)
TI=0;
if(RI)
{
unsigned char ch;
RI=0;
ch=SBUF;
if(a==1&&ch=='w')
{
a=0;
b=1;
}
if(a==1)
{
if(ch=='0')
{
cw[count]=0;
}
else
{
cw[count]=1;
}
count++;
}
if(ch=='c')
{
a=1;
count=0;
}
if(b==1);
{
b=0;
P1_0=cw[0];
P1_1=cw[1];
P1_2=cw[2];
P1_3=cw[3];
P1_4=cw[4];
P1_5=cw[5];
P1_6=cw[6];
P1_7=cw[7];
}
}
} |
|