你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

TrueSTUDIO如何使用printf函数

[复制链接]
ligongxiaobie 提问时间:2018-4-28 14:56 /
如题,用cube自动生成的代码,用的是咱们自家的TrueSTUDIO编译器,但是无法使用printf函数。

直接在main函数下添加
  1. #include "stdio.h"

  2. int fputc(int ch, FILE *f)
  3. {
  4.         while((USART1->ISR&0X40)==0);//循环发送,直到发送完毕
  5.         USART1->TDR=(u8)ch;
  6.         return ch;
  7. }
复制代码
不行啊。
  1. #pragma import(__use_no_semihosting)
  2. //标准库需要的支持函数
  3. struct __FILE
  4. {
  5.         int handle;
  6. };

  7. FILE __stdout;
  8. //定义_sys_exit()以避免使用半主机模式
  9. void _sys_exit(int x)
  10. {
  11.         x = x;
  12. }
  13. 重定义fputc函数
  14. int fputc(int ch, FILE *f)
  15. {
  16.         while((USART1->ISR&0X40)==0);//循环发送,直到发送完毕
  17.         USART1->TDR=(u8)ch;
  18.         return ch;
  19. }
复制代码
这样添加也不行,会提示#pragma import(__use_no_semihosting)这句话没编译,不知各位前辈放假前是否还有时间,帮忙解决一下,小弟感激不尽。
收藏 1 评论3 发布时间:2018-4-28 14:56

举报

3个回答
ligongxiaobie 回答时间:2018-4-28 17:01:35
千万别沉啊 。或者用过这个编译器的 介绍一个例程也行啊 我自己看看
黑皮男 回答时间:2018-4-28 17:49:12
TrueSTUDIO,我没用过,不过看论坛中好像是需要设置,还需要附件中的文件吧

syscalls.zip

下载

1.46 KB, 下载次数: 50, 下载积分: ST金币 -1

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

ligongxiaobie 回答时间:2018-5-3 10:26:31
解决了,配合这个帖子看就行。
https://www.stmcu.org.cn/module/ ... ighlight=TrueSTUDIO

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2 结贴奖励

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版