关于stm32中的printf函数的问题

2019-08-14 00:56发布

我在使用正点原子的开发板的时候,发现一个问题,就是关于printf直接通过串口打印端口数据的问题,这一点上面我感觉比较的迷惑,这个开发板的串口和printf是如何关联起来的?我在网上也查找了一些解答,但是,在正点兄的开发板上面也没有找到相关的类似的代码,请问一下,版主的这个是如何实现的,如果可以理解了这个过程的话,那么,以后可以通过printf可以非常好的调试方法了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
24条回答
素月墨羽
1楼-- · 2019-08-16 09:34
 精彩回答 2  元偷偷看……
素月墨羽
2楼-- · 2019-08-16 15:14
谢谢大佬,长姿势了
liuyangzys
3楼-- · 2019-08-16 16:45
正点原子 发表于 2015-6-11 21:02
回复【15楼】一介布衣在江湖:
---------------------------------
相当于废话。
实际上就是一直成立。

gcc用这个不成,fputc(int) 换成 __io_putchar(int)也不成,求指点
izhanghongcun
4楼-- · 2019-08-16 17:21
printf函数是库函数,通过调用fputc()实现的串口打印功能,然而这一块代码在这个库里并没有开源
//重定义fputc函数
int fputc(int ch, FILE *f)
{      
        while((USART1->ISR&0X40)==0);//循环发送,直到发送完毕   
        USART1->TDR = (u8) ch;      
        return ch;
}
#endif
//end
//////////////////////////////////////////////////////////////////
younger1513
5楼-- · 2019-08-16 17:50
一介布衣在江湖 发表于 2015-6-11 16:28
回复【10楼】正点原子:
---------------------------------
#if 1
#pragma import(__use_no_semi ...

因为#pragma import(__use_no_semihosting) 这句语句只是在#if到#endif语句段执行的,程序其他地方并不用执行,所以写了一句看似没有用的#if 1
freedx
6楼-- · 2019-08-16 21:14
 精彩回答 2  元偷偷看……

一周热门 更多>