ligongxiaobie 发表于 2018-4-28 14:56:29

TrueSTUDIO如何使用printf函数

如题,用cube自动生成的代码,用的是咱们自家的TrueSTUDIO编译器,但是无法使用printf函数。

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

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

FILE __stdout;
//定义_sys_exit()以避免使用半主机模式
void _sys_exit(int x)
{
        x = x;
}
重定义fputc函数
int fputc(int ch, FILE *f)
{
        while((USART1->ISR&0X40)==0);//循环发送,直到发送完毕
        USART1->TDR=(u8)ch;
        return ch;
}这样添加也不行,会提示#pragma import(__use_no_semihosting)这句话没编译,不知各位前辈放假前是否还有时间,帮忙解决一下,小弟感激不尽。

ligongxiaobie 发表于 2018-4-28 17:01:35

千万别沉啊 。或者用过这个编译器的 介绍一个例程也行啊 我自己看看

黑皮男 发表于 2018-4-28 17:49:12

TrueSTUDIO,我没用过,不过看论坛中好像是需要设置,还需要附件中的文件吧

ligongxiaobie 发表于 2018-5-3 10:26:31

解决了,配合这个帖子看就行。
https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=615138&highlight=TrueSTUDIO
页: [1]
查看完整版本: TrueSTUDIO如何使用printf函数