使用Devkit8500 的板子,WINCE平台,然后我试着使用串口2既然不能用,串口1和3都是能用的。我也试着在Xldr中使用,还是不行,我具体初始化代码如下,不知道我哪里出了问题:
{
。。。。。
OUTREG16(&pConfig->CONTROL_PADCONF_UART2_CTS, (INPUT_DISABLE | PULL_INACTIVE | MUX_MODE_4)); /*UART2_CTS*/
OUTREG16(&pConfig->CONTROL_PADCONF_UART2_RTS, (INPUT_DISABLE | PULL_INACTIVE | MUX_MODE_4)); /*UART2_RTS*/
OUTREG16(&pConfig->CONTROL_PADCONF_UART2_TX, (INPUT_DISABLE | PULL_INACTIVE | MUX_MODE_4)); /*UART2_TX*/
OUTREG16(&pConfig->CONTROL_PADCONF_UART2_RX, (INPUT_DISABLE | PULL_INACTIVE | MUX_MODE_4)); /*UART2_RX*/
/*uart2*/
OUTREG16(&pConfig->CONTROL_PADCONF_MCBSP3_FSX, (INPUT_ENABLE| PULL_UP | MUX_MODE_1)); /*UART2_RX*/
OUTREG16(&pConfig->CONTROL_PADCONF_MCBSP3_CLKX, ( INPUT_DISABLE | PULL_INACTIVE | MUX_MODE_1)); /*UART2_TX*/
OUTREG16(&pConfig->CONTROL_PADCONF_MCBSP3_DR, (INPUT_DISABLE | PULL_INACTIVE | MUX_MODE_1)); /*UART2_RTS*/
OUTREG16(&pConfig->CONTROL_PADCONF_MCBSP3_DX, (INPUT_ENABLE | PULL_UP | MUX_MODE_1)); /*UART2_CTS*/
。。。。。
}
void ClockSetup()
{
…………………….
// Enable UART2 (debug port) and GPIO banks that are accessed in the bootloader
SETREG32(&pPrcmCoreCM->CM_FCLKEN1_CORE, CM_CLKEN_UART2);
SETREG32(&pPrcmCoreCM->CM_ICLKEN1_CORE, CM_CLKEN_UART2);
………………….
}
引脚和时钟都初始化完了,为什么还不能在OEMDebugInit() 初始化串口2之后,还是不能用呢?是不是有什么地方遗漏了?但是串口1 ,3 按这种方式是可以的
Feng Dong:
wince软件不是很清楚,硬件方面可以看,pinmux配置的是否有冲突,查看clock状态寄存器确认clock是否enable,查看模块状态寄存器是否reset done.