printf(" 您发送的消息为: ");中最后一个 为什么不是回车换行?

2019-08-21 13:32发布

在进行串口实验时为什么printf(" 您发送的消息为: ");中最后一个 为什么不换行?如果把 删掉则会“:”会变成“?”。
在其他地方printf后面的 却是换行功能。求解答!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
linjiangxian89
1楼-- · 2019-08-22 10:48
szb0321 发表于 2016-5-3 16:37
并不只是这样!现在好多是伸手党!小问题都懒的自己查,上论坛就开始问,遇到点小问题就上论坛,完全没有 ...

嗯,或许是吧。但是对于买开发板的新手来说有时候买的不只是板子,也是想得到指导,当然指导是无价的。对于这个问题,我也百度了,没找到相应的解答,既然论坛里提出了这个问题,我觉得大神们看到了给点拨明白不是很好的事情吗?就像现在,你答复了我,但却没有回答问题....对于我们两个来说,都是在浪费时间。咱们是理性来探讨哈,希望您可以指导一下。这样以后再有这种问题的新手,看到这个帖子就不会再有类似的疑问了。谢谢!
linjiangxian89
2楼-- · 2019-08-22 16:44
滴丶滴 发表于 2016-5-3 16:16

您可以帮解答一下吗?我试着删了" ",串口读出的会有乱码~
linjiangxian89
3楼-- · 2019-08-22 22:09
szb0321 发表于 2016-5-3 16:37
并不只是这样!现在好多是伸手党!小问题都懒的自己查,上论坛就开始问,遇到点小问题就上论坛,完全没有 ...

不好意思,感觉话说多了....抱歉....
庄健宇
4楼-- · 2019-08-22 22:37
我也不太清楚,但是我感觉每个要发送的数组都以 作为结束,所以用printf的时候必须要用
linjiangxian89
5楼-- · 2019-08-23 02:31
 精彩回答 2  元偷偷看……
庄健宇
6楼-- · 2019-08-23 07:21
我知道为什么了,struct __FILE
{
        int handle;

};

FILE __stdout;      
//定义_sys_exit()以避免使用半主机模式   
_sys_exit(int x)
{
        x = x;
}
//重定义fputc函数
int fputc(int ch, FILE *f)
{      
        while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
    USART1->DR = (u8) ch;      
        return ch;
}
#endif
在这个函数定义中,while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
这个是以/n为结束标志,如果没有printf中没有/n,就不知道结束没结束所以会出现乱码的情况。
我是这样理解的,但是不知道对不对。

一周热门 更多>