STM32
直播中

晴兮晴兮

11年用户 566经验值
私信 关注
[问答]

怎样去解决sw4stm32环境下遇到重定向完成后printf没有输出的问题呢

在sw4STM32环境下如何添加printf支持呢?
怎样去解决sw4stm32环境下遇到重定向完成后printf没有输出的问题呢?

回帖(1)

李叱镡

2021-12-2 11:39:24
windows使用sw4stm32环境下下遇到过重定向完成后printf没有输出的问题,网上的解决方式是添加syscalls.c。现记录备忘,新版的cubemx好像已经自动添加了syscalls.c
  以下为转 载:
  首先在安装目录下找到syscalls.c文件,将该文件放到工程的src文件下;然后需要使用串口的发送函数,编写下面的接口函数:
  void __io_putchar(uint8_t ch)
{
    HAL_UART_Transmit(&huart2,(uint8_t *)&ch,1,0xFFFF);
    //return (ch);
}
  完成该操作后,printf应该是可以输出字符串和整型格式化的数据,但是对于浮点数显示的不对,此时需要添加编译选项,添加流程为Properties -> C/C++ Build -> Settings -> MCU GCC Linker -> Miscellaneous -> Linker flags后面增加-u _printf_float标志.重新编译即可实现printf功能.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分