以下是串口测试程序,我用串口助手测试,我的程序是接收到电脑发送数据则回传一个数据,但电脑发送数据后电脑收不到任何数据,但我让程序主动发送数据则电脑接收正常,下载程序也正常说明串口收发都是正常的,不明白为什么会这样,以前都试过可以的。
unsigned char test;
void UartInit(void);
void main(void)
{
EA=1;
test=0x12;
UartInit();
while(1)
{
....
}
}
void UartInit(void) //4800bps@8MHz
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x40; //定时器1时钟为Fosc,即1T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xCC; //设定定时初值
TH1 = 0xCC; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
ES=1; //打开口中断
}
void Uart_Isr(void) interrupt 4
{
if(RI)
{
RI=0;
SBUF=test;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>