STC89C52RC串口的问题
本人自己画了一块STC89C52RC的控制板,在调串口的时候遇到一个问题#include <reg51.h>
void InitUART(void)
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xFD;
TL1 = TH1;
PCON = 0x00;
EA = 1;
ES = 1;
TR1 = 1;
}
void SendOneByte(unsigned char c)
{
SBUF = c;
while(!TI);
TI = 0;
}
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
//add your code here!
}
else
TI = 0;
}
主程序里面
while(1)
{
SendOneByte(0x11);
}
理想情况下,PC端应该会一直接受到0x22,然而事实是接受端只收到2次,程序就莫名其妙飞了。我再测试单独翻转IO口,一切正常,有人遇到过这种情况吗 void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
//add your code here!
}
else
TI = 0;
中的TI =0;删除
while(!TI);
TI = 0;
发送函数有这个了,所以中断内的那部分中断标志代码可删除 我试试啊 {:tongue:可以了,谢谢大侠
页:
[1]