码迷,mamicode.com
首页 > 其他好文 > 详细

新唐NDA102EC1中更改UUART1作为调试串口打印输出调试信息

时间:2019-11-23 18:16:25      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:位置   char   模块   system   定义   定向   网上   putc   target   

新唐NDA102EC1中更改UUART1作为调试串口打印输出调试信息

参考网上STM32修改fputc(int ch, FILE *f),把串口打印函数printf()重定向到UUART1模块的端口输出,最终未成功。
但循着类似解决问题的思路,直接在工程中查找有关printf()函数和fputc()函数的定义位置。
最终发现printf()函数在stdio.h头文件中定义,属于标准C的定义,无价值...
发现fputc()函数在retarget.c文件中定义:

int fputc(int ch, FILE *stream)
{
    SendChar(ch);
    return ch;
}

进一步对SendChar()剥皮,发现在retarget.c文件中定义。而retarget.c文件就是NDA102EC1 Series Debug Port and Semihost Setting Source File
确认找对地方了,对retarget.c文件中的宏定义逐个排查,最终确认DEBUG_PORT就是定义的UUART端口。反向查找发现在system_NDA102EC1Series.h头文件开始部分:

/* Using UART0 or UART1 */
#define DEBUG_PORT   UUART0
//#define DEBUG_PORT   UUART1

修改DEBUG_PORT指向UUART1:

/* Using UART0 or UART1 */
//#define DEBUG_PORT   UUART0
#define DEBUG_PORT   UUART1     //2019-11-23 revise UUART1 as debug_port

OK,可以在主函数中放心使用printf()向UUART1端口打印输出调试信息了。

新唐NDA102EC1中更改UUART1作为调试串口打印输出调试信息

标签:位置   char   模块   system   定义   定向   网上   putc   target   

原文地址:https://www.cnblogs.com/aesir/p/11918851.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!