查看: 8165|回复: 4

[S32] S32DS S32K144 怎么把 printf 重定向 到串口

[复制链接]

该用户从未签到

2

主题

24

帖子

5

新手上路

Rank: 1

积分
46
最后登录
2021-11-24
发表于 2018-5-14 15:50:26 | 显示全部楼层 |阅读模式
有人搞了  吗 ,请告知方法 谢谢!

最佳答案

所-长 发表于 2018-5-14 15:51 #ifdef __GNUC__   /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf    ... 可以试试这个办法 https://www.nxpic.org.c ...
回复

使用道具 举报

该用户从未签到

2

主题

24

帖子

5

新手上路

Rank: 1

积分
46
最后登录
2021-11-24
 楼主| 发表于 2018-5-14 15:51:27 | 显示全部楼层
#ifdef __GNUC__
  /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
     set to 'Yes') calls __io_putchar() */
  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */

/**
  * @brief  Retargets the C library printf function to the USART.
  * @param  None
  * @retval None
  */
PUTCHAR_PROTOTYPE
{

        uint8_t c = ch;

  /* Place your implementation of fputc here */
  /* e.g. write a character to the USART */
  debug_flexio_uart0_tx_send_data(&c,1UL);

  return ch;
}

这种 从 keil 拿出来 的 直接 进入 hardfault!
回复 支持 反对

使用道具 举报

该用户从未签到

713

主题

6372

帖子

0

超级版主

Rank: 8Rank: 8

积分
25024
最后登录
2025-7-31
发表于 2018-5-14 16:01:59 | 显示全部楼层
所-长 发表于 2018-5-14 15:51
#ifdef __GNUC__
  /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
   ...

可以试试这个办法
https://www.nxpic.org.cn/module/forum/thread-600897-1-1.html
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

24

帖子

5

新手上路

Rank: 1

积分
46
最后登录
2021-11-24
 楼主| 发表于 2018-5-14 16:04:19 | 显示全部楼层
小恩GG 发表于 2018-5-14 16:01
可以试试这个办法
https://www.nxpic.org.cn/module/forum/thread-600897-1-1.html

谢谢 我 先去看看
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

24

帖子

5

新手上路

Rank: 1

积分
46
最后登录
2021-11-24
 楼主| 发表于 2018-5-20 17:58:31 | 显示全部楼层
static char debugVsprintfBuff[256] = {0};

void bspDebugPrintf( char *str, ... )
{
       // 字符串过长 会 爆掉 缓冲区  debugVsprintfBuff 请注意
       DEV_ASSERT(strlen(str) < 128);

        va_list argptr;
        uint32_t counter=0;

        va_start(argptr, str);
        counter = vsprintf(debugVsprintfBuff, str, argptr);
        va_end(argptr);

        //把数据发送到串口1
        sendUart(COM1, (uint8_t*)debugVsprintfBuff, counter);
}

回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-8-2 20:11 , Processed in 0.092395 second(s), 26 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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