目前使用的是NUC100系列MCU,且使用的是串口2:
注:一般要在工程目录下添加retarget.c文件,调试的时候可以选择使用哪个串口,需要进行配置,主要是在system_NUC1XX.h中修改:
/* Using UART0 or UART1 */
#define DEBUG_PORT 2 /*0:UART0 1:UART1 2:UART2 */
如果这样设置之后,在程序中添加printf代码仍无法通过串口打印信息出来,则可能要修改retarget.c的代码,因为在retarget.c中,有可能没设置当使用串口2作为调试口的时候如何打印,所以要在void SendChar_ToUART(int ch)中添加以下内容:
if(DEBUG_PORT == 2)
{
while(UART2->FSR.TX_FULL == 1);
UART2->DATA = ch;
if(ch == '\n'){
while(UART2->FSR.TX_FULL == 1);
UART1->DATA = '\r';
}
}
然后再编译下载程序,即可使用printf语句在串口工具上打印内容了。
但有个问题,要对MCU寄存器进行检测或是调试程序,使用printf有什么作用,一直搞不懂,只是检测寄存器的状态值吗? |