打印
[Cortex-M0技术交流]

关于通过串口使用printf来调试程序

[复制链接]
3037|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lixiang656|  楼主 | 2013-1-21 09:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前使用的是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有什么作用,一直搞不懂,只是检测寄存器的状态值吗?

相关帖子

沙发
jlass| | 2013-1-22 10:41 | 只看该作者
打印出任何你想看的值

使用特权

评论回复
板凳
qingx| | 2013-1-22 11:01 | 只看该作者
额....

使用特权

评论回复
地板
xyz549040622| | 2013-1-22 16:05 | 只看该作者
可以使用半主机进行调试,printf直接打印,省去串口

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

20

帖子

1

粉丝