打印

79f165串口问题

[复制链接]
1522|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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();
}

QQ截图3.png (49.36 KB )

QQ截图3.png
沙发
yytpy2008|  楼主 | 2012-6-29 14:26 | 只看该作者
解决了 结贴

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

75

帖子

1

粉丝