本帖最后由 ff8zgs 于 2015-4-24 13:18 编辑
刚接触这个MCU 现在调试串口遇到了 串口的TXD 死活不输出波形(用示波器看的)。我调试过程:1Timer1单独 使用波特率正常,TXD的IO口也能输出波形。2检查 各寄存器也是正确的(一会附图),3 仿真,首先软防 能正确地打印字符然后硬防就不能打印字符,示波器也看不到波形。
根据以上现象我初步认为是 交叉开关的鬼,就是说交叉开关未将串口接到IO口上(在寄存器上看是正确接过来的。)。但我我怎么验证我的这个思路呢,如果是怎么解决了呢????
这个是 寄存器的debug值,我开启了 Timer0和Timer1 然后故意将P0MOUT设置为0x61 设置成0x10也是一样。
void UartInit(void)
{
Port0Init(PORT_PIN5_DIGITINPUT, PORT_PIN4_PUSHPULLOUT, PORT_NOPIN_SKIP);//初始化IO口
Timer1Init(TIMER1MODE2, BAUDRATE*2); //初始化Timer1 波特率 9600
SCON0=0X50; // SCON0: 8-bit variable bit rate
XBR0 =0X01; //串口接上邋IO口
XBR1 = 0x40;
IP|=IPPS; // Make UART high priority
ES0=ENABLE; // Enable UART Interrupt
EA=ENABLE; // Enable all Interrupts
ET1=0;
P0MDOUT = 0x61;
}
|