单片机关于定时器方式1的串口通信
请问我这样配置为9600波特率的为什么无法收发数据voidUsartInit(){SCON=0X50;//设置为工作方式1TMOD=0X10;//设置计数器工作方式1TH...
请问我这样配置为9600波特率的为什么无法收发数据
void UsartInit()
{
SCON=0X50; //设置为工作方式1
TMOD=0X10; //设置计数器工作方式1
TH1=0XFFFD; //计数器初始值设置,注意波特率是9600的
TL1=0XFFD0;
ES=1; //打开接收中断
EA=1; //打开总中断
TR1=1; //打开计数器
}
void main()
{
UsartInit(); // 串口初始化
while(1);
}
void Usart() interrupt 4
{
u8 receiveData;
receiveData=SBUF;//出去接收到的数据
if(receiveData==6)
{
SBUF=receiveData+1;//将接收到的数据放入到发送寄存器
}
else{
SBUF=receiveData;
}
RI = 0;//清除接收中断标志位
while(!TI); //等待发送数据完成
TI=0; //清除发送完成标志位
TH1=0XFFFD;
TL1=0XFFD0;
} 展开
void UsartInit()
{
SCON=0X50; //设置为工作方式1
TMOD=0X10; //设置计数器工作方式1
TH1=0XFFFD; //计数器初始值设置,注意波特率是9600的
TL1=0XFFD0;
ES=1; //打开接收中断
EA=1; //打开总中断
TR1=1; //打开计数器
}
void main()
{
UsartInit(); // 串口初始化
while(1);
}
void Usart() interrupt 4
{
u8 receiveData;
receiveData=SBUF;//出去接收到的数据
if(receiveData==6)
{
SBUF=receiveData+1;//将接收到的数据放入到发送寄存器
}
else{
SBUF=receiveData;
}
RI = 0;//清除接收中断标志位
while(!TI); //等待发送数据完成
TI=0; //清除发送完成标志位
TH1=0XFFFD;
TL1=0XFFD0;
} 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |