知了博客

集天地之精华,吸日月之灵气

« WinXP与WinCE串口的运行机制之比较WinCE串口编程API函数(二) »

wince去掉串口0的DEBUG模式,改为普通模式

来自:http://herbertbt.blog.163.com/blog/static/57266582200911151580307/

这个方法也还可以:


本文转自 :http://blog.chinaunix.net/u1/49088/showart_1933553.html

目前wince的串口0是作为调试串口用的,但是因为我的案子需要3个串口,所以要把它改为普通串口,但是开机时候还是需要打印debug信息,鉴于此,我修改如下:
debug.c中加入一行:
int DebugConsoleEnabled=1;
发送时候做判断:

//------------------------------------------------------------------------------

//

// Function: OEMWriteDebugByte

//

// Transmits a character out the debug serial port.

//

VOID OEMWriteDebugByte(UINT8 ch)

{

   if(DebugConsoleEnabled == 0)

return;

 

   // Wait for transmit buffer to be empty

   while ((INREG32(&g_pUARTReg->UTRSTAT) & 0x02) == 0);

 

   // Send character

   OUTREG32(&g_pUARTReg->UTXH, ch);

}

 

 

//------------------------------------------------------------------------------

//

// Function: OEMReadDebugByte

//

// Reads a byte from the debug serial port. Does not wait for a character.

// If a character is not available function returns "OEM_DEBUG_READ_NODATA".

//

 

int OEMReadDebugByte()

{

   UINT32 status, ch;

 

   if(DebugConsoleEnabled == 0)

return 0;

 

   status = INREG32(&g_pUARTReg->UTRSTAT);

   if ((status & 0x01) != 0) {

   ch = INREG32(&g_pUARTReg->URXH);

   // if ((status & UART_LINESTAT_RF) != 0) ch = OEM_DEBUG_COM_ERROR;

   } else {

   ch = OEM_DEBUG_READ_NODATA;

   }

   return (int)ch;

}

 

然后在OemInit函数结束后把DebugConsoleEnabled = 0;就可以了。

不知道为何,我4.2的bsp生成的wince,用以前的串口测试程序来测试,就可以,但是我的5.0的wince,串口测试程序打开不了,无奈只能自己写了一个简单的c#的串口测试,串口0是ok的。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Arwen Build 90619 Code detection by Codefense  theme by BokeZhuti

Copyright know blog. Some Rights Reserved.站长(msn):webmaster#webgou.info(#换成@) 粤ICP备09183716号