关于51单片机的串口2收发问题
时间:10-02
整理:3721RD
点击:
做一个51的串口2收发,现在开串口之后无任何反应,是不是哪里写错了?找不出错误了,基本按照串口1的来的
#include"stc15.h"
#define u8 unsigned char
#define u16 unsigned int
init_uart2();
void main()
{
init_uart2();
ES2=1;
EA=1; //开总中断
while(1)
{
;
}
}
void init_uart2(void) //9600bps@11.0592MHz
{
S2CON = 0x50; //8位数据,可变波特率
AUXR |= 0x04; //定时器2时钟为Fosc,即1T
T2L = 0xE0; //设定定时初值
T2H = 0xFE; //设定定时初值
AUXR |= 0x10; //启动定时器2
}
void uart2_routine(void) interrupt 8
{
u8 databuf2;
if(S2CON&S2RI)
{
S2CON &= ~ S2RI ;
databuf2=S2BUF;
S2BUF=databuf2;
}
if(S2CON&S2TI)
{
S2CON &= ~ S2TI ;
}
}
#include"stc15.h"
#define u8 unsigned char
#define u16 unsigned int
init_uart2();
void main()
{
init_uart2();
ES2=1;
EA=1; //开总中断
while(1)
{
;
}
}
void init_uart2(void) //9600bps@11.0592MHz
{
S2CON = 0x50; //8位数据,可变波特率
AUXR |= 0x04; //定时器2时钟为Fosc,即1T
T2L = 0xE0; //设定定时初值
T2H = 0xFE; //设定定时初值
AUXR |= 0x10; //启动定时器2
}
void uart2_routine(void) interrupt 8
{
u8 databuf2;
if(S2CON&S2RI)
{
S2CON &= ~ S2RI ;
databuf2=S2BUF;
S2BUF=databuf2;
}
if(S2CON&S2TI)
{
S2CON &= ~ S2TI ;
}
}
STC-ISP中有例程,可以参考。
