我想用串口接收一组数组程序这样写 运行不对是什么情况
#include <reg52.h>
#include<stdlib.h>
#define uint unsigned int
#define uchar unsigned char
//定义接收 数组
uchar Buffer[6],OK[]="ok";
uint temp_ser[5];
uchar flag_ser=0,i=0,j=0,k,re=0;
//串口初始化函数
void serial_init( )
{
TMOD=0x20;
SCON=0x50;
EA=1;
ES=1;
TR1=1;
TH1=0xfd;
TL1=0xfd;
}
//中断函数
void receive() interrupt 4
{
if(RI)
{
Buffer[i]=SBUF;
RI=0;
}
i++;
if(Buffer[i]=='@')
{
re=1;
Buffer[i]=0;
}
if(re==1)
{
temp_ser[j++]=atoi(Buffer);
re=0;
i=0;
}
if(j==6)
{
j=0;
flag_ser=1;
}
}
//主函数
void main()
{
serial_init( );
while(1)
{
if(flag_ser==1)
{
P2=temp_ser[0];
SBUF=OK[k];
while(!TI)
TI=0;
flag_ser=0;
}
}
}
|