新手学习,想通过STC12C5A60S2的串口2收发数据,写了个测试程序,就是串口助手发什么就接收什么
但是用串口助手测试的时候发不出去数据也接收不到数据,代码如下,
求前辈指点呀~~谢谢大家啦~!
#include
#define uchar unsigned char
#define S2RI 0x01 //S2CON^0
#define S2ti 0x02 //S2CON^1
uchar Data_In,flag;
void Usart2_Init() //9600bps,11.0592MHz;串口2初始化函数
{
AUXR&=0xf7; //波特率不倍速;
BRT=0xfd; //设定独立波特率发生器重装值;
S2CON=0x50; //8位数据,可变波特率;
AUXR&=0xfb; //独立波特率发生器时钟为Fosc,即1T;
AUXR|=0x10; //启动独立波特率发生器;
EA=1; //总中断打开;
IE2=0x01; //串口2中断打开;
}
void Send_Usart2()
{
if(flag==1)
{
flag=0;
IE2=0x00;
S2BUF=Data_In;
while(!(S2CON&S2TI));
S2CON&=~S2TI;//清标志位
IE2=0x01;
}
}
void main() //主函数;
{
Usart2_Init();
while(1)
{
Send_Usart2();
}
}
void Usart2_Int() interrupt 8 //串口中断函数;
{
if(S2CON&S2RI)
{
S2CON&=~S2RI;//清标志位
Data_In=S2BUF;
P1=Data_In;
flag=1;
}
}