查看: 3019|回复: 0

[原创] [LPC1768]串口输出调试信息

[复制链接]
  • TA的每日心情
    开心
    2025-6-10 23:03
  • 签到天数: 1502 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    97

    主题

    4688

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    10080
    最后登录
    2025-7-2
    发表于 2019-2-24 21:45:03 | 显示全部楼层 |阅读模式
        在上一个实验中,我们实现了uart0的输出,在这一个实验中,我们将方便的调试信息也加入到工程里面。这样,我们在没有显示屏的情况下也能看到我们的程序运行状态,模拟一下Linux的调试信息输出。
    调试打印.jpg
        上图就是我们实现的结果,上面有info的标识,有打印信息的位置,包括文件名与文件行。
        在uart0的信息,我们定义为字符型输出,这样我们可以使用'\0'来判断调试信息的结束。
        在另外一个方面我们需要使用printf的典型输出方式,方便我们输出当前程序的状态。这时我们需要使用可变长度的定义,同样,为了调试信息的多样性,我们也使用了宏定义来直接区分调试信息。不多说了,直接分享源代码吧:
    1. #define Debug_Info(...) debugPrintf(INFO, ##__VA_ARGS__)
    2. Debug_Info("%s:%d this is a demo for debuginfo\n", __FILE__, __LINE__);

    3. void Uart0Flush(void)
    4. {
    5.   uint16_t i;
    6.   for(i = 0; i < UART_BUF_LEN; i++)
    7.   {
    8.     if(TxdBuf[i] != 0)
    9.     {
    10.       Uart0SendByte(TxdBuf[i]);
    11.     }
    12.     else
    13.     {
    14.       break;
    15.     }
    16.   }
    17. }
    复制代码

    P.S.我们其实也可以使用ITM调试输出,我们另做实验实现。



    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 23:31 , Processed in 0.085459 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表