printf如何发送字符串的呢?

2019-07-21 08:39发布

重定向这个函数看起来只是发送一个字节,printf经常参数是一个“字符串”。中间做了什么工作呢?我理解的:
1、字符串作为参数其实是传递了字符串的首地址,保存着第一个字符的地址,是这样吧?
2、在printf中有一个循环吗?对每个字节地址都调用一次fputc,请问是这个意思吗?

int fputc(int ch, FILE *f){      
        while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
    USART1->DR = (u8) ch;      
        return ch;
}



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-21 13:21
喜欢研究,自己百度printf源码学习
来俩不甜的
2楼-- · 2019-07-21 18:42
不要瞎猜,看下源码。它的实现比你想的要高级的多
szczyb1314
3楼-- · 2019-07-21 20:54
本帖最后由 szczyb1314 于 2018-11-8 10:50 编辑

用串口可以实现一个简单的printf打印功能,可用%d %D %c %C %x %X %s %S %f %F %p %P

一周热门 更多>