/串口初始化
void Usart_Init()
{
SCON = 0x50; //设置为工作方式1 ,允许发送接收
TMOD |= 0x20; //设置计数器工作方式2
PCON = 0x00; //波特率加倍
TH1 = 0xFD; //计数器初值设置,波特率是9600
TL1 = 0xFD;
TI = 1; //使用printf函数必备
ES = 1; //开串口中断
EA = 1; //开总中断
TR1 = 1; //开计数器
}
//串口中断函数
void Usart_IRS() interrupt 4
{
u8 temp;
if(TI)
TI=0;
if(RI)
{
RI = 0;
temp=SBUF;
if(temp != '\n')
{
Usart_Rec_Buf[Usart_Rec_Counter++]=temp; //接收数据
}
else
{
Usart_Rec_Length =Usart_Rec_Counter;
Usart_Rec_Counter=0;
Usart_Rec_Success=1;
}
}
}
/******这块是调用printf的*********/
if(K1 == 0)
{
sys_delayxms(100);
if(K1 == 0)
{
while(K1 == 0);
printf("Hello World");
}
}
if(K2 == 0)
{
sys_delayxms(100);
if(K2 == 0)
{
while(K2 == 0);
printf("Welocome");
}
}
51串口,调用printf就死机
最新推荐文章于 2024-06-29 22:19:40 发布