代码如下:
unsigned char USART_DataRCV(unsigned char *s)
{
int i=0;
while (!(UCSR0A & (1<<RXC0))); /*等待接受数据*/
while(*s)
{
s[i]=UDR0;
if(s[i] == '\0' || s[i] == NULL)
break;
delay_us(500);
i++;
}
Receiveflag = 1; //置标志位
return Receiveflag;
}
/*函数的功能是:当串口接收到数据后,每次PC向单片机发送3个十六进制数,单片机就将收到的数据返给PC端*/
void myReceive()
{
if(USART_DataRCV(Data)) //已经定义了全局变量unsigned char Data[4];
{
Receiveflag = 0;
usartsend(Data,strlen(Data));
delay_ms(500);
}
}
编译没有问题。但是现在PC端接收不到数据。用的是ICCAVR编译器。如果是单片机预定义向PC端发送数据是可以的,但是就是接收以后发送不行。
实在是玩不转它了。跪求高手或者不高手帮忙解决一下。
|