情况如下,只要确认串口能工作。T2波特率发送器,串口工作方式1,代码如下。
时钟初始化
void ClockInit (void)
{
uint16 i;
CLKCON &= 0x9F; // 不分频
CLKCON |= 0x08; // 打开高频振荡器
for (i = 0; i < 1000; i++); // 延时2ms以上
CLKCON |= 0x04; // 选择内部16.6MHz高频振荡器
}
串口初始化
void UartInit (void)
{
P1CR = 0x04;
P1PCR = 0x02;
P1 |= 0x04;
TR2 = 0;
T2MOD = 0x80;
T2CON = 0x30;
PCON = 0x00;
SCON = 0x50;
TH2 = 0xFF;
TL2 = 0xCA;
RCAP2H = 0xFF;
RCAP2L = 0xCA;
TR2 = 1;
}
发生一字节函数
void UartSendOne (uint8 dat)
{
SBUF = dat;
while (TI == 0);
TI = 0;
}
主程序
while (1)
{
UartSendOne('z');
}
串口调试助手没有任何反应:
1:是不是内部晶振不稳定?
2:IO口配置错误?
3:定时器、串口的寄存器配置错误?
4:发送函数有问题?
:L |