大神帮帮忙啊。。。。我的两个串口独立使用都可以,但是写在一起就有问题了
#include<12c5a60s2.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char temp2,flag2;
#define S2RI 0x01 //串口2接受中断请求标志位
#define S2TI 0x02 //串口2发送中断请求标志位
void main()
{
TMOD=0x20; //定时器1工作在方式2
SCON=0x50; //串口工作在方式1
REN=1;
TH1=0xfd;
TL1=0xfd;
PCON=0x00; //波特率正常
TR1=1;
EA=1;
ES=1;
AUXR &= 0xf7; //波特率不倍速
S2CON = 0x50; //8位数据,可变波特率
BRT = 0xDC; //设定独立波特率发生器重装值
AUXR |= 0x04; //独立波特率发生器时钟为Fosc,即1T
AUXR |= 0x10; //启动独立波特率发生器
IE2=0x01;
while(1)
{
if(flag2==1)
{
EA=0;
SBUF=temp2;
while(!TI)
TI=0;
flag2=0;
EA=1;
}
}
}
void ser_2()interrupt 8
{
S2CON=~S2RI;
flag2=1;
temp2=S2BUF;
}
帮忙看看有啥问题啊 |