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

2019-08-21 13:32发布

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

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
21条回答
庄健宇
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,就不知道结束没结束所以会出现乱码的情况。
我是这样理解的,但是不知道对不对。

一周热门 更多>