关于输出函数的一个小疙瘩printf(" 您发送的消息为: ");为什么需要两个换行符?

2019-07-20 23:02发布

[mw_shl_code=c,true]while(1)
        {
                if(USART_RX_STA&0x8000)
                {                                          
                        len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
                        printf(" 您发送的消息为: ");
                        for(t=0;t<len;t++)
                        {
                                USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
                                while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
                        }
                        printf(" ");//插入换行
                        USART_RX_STA=0;
                }else
                {
                        times++;
                        if(times%5000==0)
                        {
                                printf(" 精英STM32开发板 串口实验 ");
                                printf("正点原子@ALIENTEK ");
                        }
                        if(times%200==0)printf("请输入数据,以回车键结束 ");  
                        if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
                        delay_ms(10);   
                }
        }         [/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
taizonglai
1楼-- · 2019-07-21 01:40
用几个换行是别人的习惯,你觉得不习惯你就用一个啊。
豆子的愿望
2楼-- · 2019-07-21 06:42
上面代码显示的是正确的现象,如下
您发送的消息为:
XXXXX
但是搞不懂为什么需要两个换行符呀!
豆子的愿望
3楼-- · 2019-07-21 11:20
zuozhongkai 发表于 2017-7-22 17:56
用几个换行是别人的习惯,你觉得不习惯你就用一个啊。

不好意思说的不是很明白,我之前写的是这样的 printf(" 您发送的消息为: ");
按理说显示应该是
您发送的消息为:
XXXXX

但在串口显示窗口是
您发送的消息为:XXXXX

所以有些搞不懂啊
正点原子
4楼-- · 2019-07-21 14:59
豆子的愿望 发表于 2017-7-22 19:00
不好意思说的不是很明白,我之前写的是这样的 printf(" 您发送的消息为: ");
按理说显示应该是
...

可以只需要一个。
豆子的愿望
5楼-- · 2019-07-21 16:26
 精彩回答 2  元偷偷看……
stormxin
6楼-- · 2019-07-21 21:13
豆子的愿望 发表于 2017-7-23 14:56
那按照历程里的printf(" 您发送的消息为: ")写法串口显示窗口的不应该是

您发送的消息为:

我现在也遇到这个问题,不知道楼主解决了没有,能否告知

一周热门 更多>