有关w77e58串口调试
不知道怎么回事,我用的串口调试程序,竟然不能从串口读出任何数据;
程序:
#include" W77E58.h"
static int flag_1,flag_0;
char c1[]="hello china";
char c2[]="hello World";
main()
{
int i;
flag_1=1;
flag_0=1;
//system init ,其中串口0用定时器2,串口1用定时器1
//串口1的设置
IE=0x90; //允许总中断和串口0的中断
TMOD=0x20; //定时器1工作在模式1
TL1=0xf4; //baud rate=2400
TH1=0xf4;
SCON1=0x58; //工作在模式1,允许接收
PCON=0x00; // SM0=0 SM1=1 在10位异步收发模式 SMOD=0 溢出速率/32
ES1=1; //串口1中断允许
SCON=0x58; //工作在模式1,接收允许
T2CON=0x30; //用定时器2做串口0的波特率发生器
RCAP2H=0xff; // 11.0592M晶振下,baud rate=2400
RCAP2L=0x70;
TR2=1;
TR1=1;
while(1){
if(flag_0) {
TI=1;
flag_0=0;
}
for(i=0;i <1000;i++)
;
if(flag_1) {
TI_1=1;
flag_1=0;
}
for(i=0;i <1000;i++)
;
}
}
/*********************************
串口 0 中断函数
*********************************/
void serial_0(void)interrupt 4
{
int i;
if(RI){
flag_0=1;
RI=0;
}
if(TI){
for(i=0;i <10;i++){
TI=0;
SBUF=c1[i];
while(TI==0) ;
TI=0;
}
}
}
/*********************************
串口 1 中断函数
*********************************/
void serial_1(void)interrupt 7
{
int i;
if(RI_1){
flag_1=1;
RI_1=0;
}
if(TI_1){
for(i=0;i <10;i++){
TI_1=0;
SBUF1=c2[i];
while(TI_1==0) ;
TI_1=0;
}
}
}
还请那位大虾指点迷津!
电脑通过串口调试助手发送数据给单片机,但是收不到单片机的数据!
不知道为何?
发表时间:2005年4月7日9:16:10