本帖最后由 yytpy2008 于 2012-6-29 11:44 编辑
问题是这样的:代码如下。
void uart_test(void)
{
/////while(get_char()!=0x20);
while(1){put_char(0x55);}
}
这样子执行串口调试能接到0x55.
可是加上换成这个
void uart_test(void)
{
while(get_char()!=0x20);
while(1){put_char(0x55);}
}
用串口调试发送0x20。单片机就是接收不到0x20.我不知道为什么。请大师们解答一下。
#include<SH79F165.h>
#define uint unsigned int
#define uchar unsigned char
void Delay1us(unsigned int a0)
{
//unsigned char data b0;
for(a0;a0>0;a0--);
}
void uart_init(void)
{
P0CR=0xFF;
P0PCR=0xFF;
P0=0x00;
P1CR=0xFF;
P1PCR=0xFF;
P1=0xFF;
P2CR=0x00;
P2PCR=0xFF;
P2=0xFF;
//-------------------------OSC Initialization
CLKCON=0x08;
Delay1us(2);
CLKCON=0x0C;
//----------- Timer1/Euartªì©l¤Æ ------------//
SCON=0x40; // #0100,0000 b serial port mode 1, ren=0 disable recieve data
PCON=0x00;
TMOD=0x21;
TCON1=0x0C;
TL1=0xCA; //Timer1 baud = 9600Hz
TH1=0xCA; //ªi¯S²v = Fsysclk/32/(256-TH1),SMOD=0
TR1=1;
}
char get_char(void)
{
while(RI==0);
RI = 0;
return SBUF;
}
void put_char(unsigned char ch)
{
SBUF=ch; //·¢ËÍÒ»¸ö×Ö½Ú
while(TI==0); //µÈ´ýTIÖÃ1
TI=0; //Çå³ýTI
}
void uart_test(void)
{
/////while(get_char()!=0x20);
while(1){put_char(0x55);}
}
void main(void)
{
uart_init();
uart_test();
} |