分享

关于在Ubuntu下开发STM32程序printf函数的重映射问题(SW4STM32)

 rookie 2021-05-05

最近使用STM32CubeMX加Ubuntu18.0来进行STM32相关程序的开发,在使用串口打印的使用出现了如下问题:

  1. printf函数按照Keil中的方式进行映射后,在软件仍然无法正常使用Printf函数
  2. 使用了__io_putchar() 和 int putc()都无法解决问题

我是使用的时makefile项目来通过命令行进行编译的,在网上查了,并且亲自测试后得出结论,在STM32CubeMX生成的makefile项目文件缺少syscalls.c文件,进一步查询发现这个主要是进行系统调用的。结合其中的函数,在使用int __io_putchar(int ch)进行printf重映射的时候还需加入系统调用的相关函数,如图所示:


经过上述的重映射之后printf函数就可以使用了,我这边使用了FreeRTOS操作系统,如图:


串口接收到的数据如下图所示:


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多