STC89C52单片机无法同时使用串口和定时器2,是怎么回事?
这两个功能只能二选一,同时使用时定时器2只能中断一次,主程序正常运行。是怎么回事,希望大侠帮帮忙。 帖一下代码吧... 定时器2做波特率发生器,用其他定时器不行吗 故障代码如下:请大家看一下。void InitUSART(void)
{
/*****串口配置******/
TMOD |= 0x20; //timer1 8bit autoload
SCON = 0x50;//允许接收及中断
// PCON = 0;
PCON &= 0x7f;
TH1 = 0xf3;// 2400 bps
TL1 = TH1;
TI=0;
RI = 0;
ES = 1;
ET1 = 0;
TR1 = 1;
}
void Time2_Init(void)
{
/*****定时器2配置******/
T2MOD = 0;
T2CON = 0;
RCAP2H = (65535-10000)/256; //10 ms autoload
RCAP2L = (65535-10000)%256;
TH2 = RCAP2H;
TL2 = RCAP2L;
ET2 = 1;
TR2 = 1;
}
int SysInit(void)
{
/*****定时器0配置******/
TMOD |= 0x01;//TIMER0 16bit//
TCON = 0x00;
TH0 = (65536-1000) /256; // 1 ms
TL0 = (65536-1000)%256;
ET0 = 1;
TR0 = 1;
Time2_Init(); //定时器2初始化
InitUSART();//初始化串口
EA = 1;
return 0;
} 整个工程如下:
5612404 发表于 2013-1-26 09:37 static/image/common/back.gif
定时器2做波特率发生器,用其他定时器不行吗
记得51单片机的确是这样的... 5612404 发表于 2013-1-26 09:37 static/image/common/back.gif
定时器2做波特率发生器,用其他定时器不行吗
我用定时器1做波特率发生器,定时器2想做PWM控制,因为有16自动重载功能。 zpxa001 发表于 2013-1-26 12:03 static/image/common/back.gif
记得51单片机的确是这样的...
我用的是STC89C52RC,有3个定时器,看手册上说可以将定时器1、与定时器2做波特率发生器。 问题已经解决了, 问题出在了串口发送上。
重写了串口发送函数
zhyong319 发表于 2013-1-26 13:53 static/image/common/back.gif
问题已经解决了, 问题出在了串口发送上。
重写了串口发送函数
求改过的串口发送函数,我和你遇到同一个问题,求帮助啊。。。。
页:
[1]