OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2968|回复: 8

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

[复制链接]

7

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2017-7-8
在线时间
46 小时
发表于 2017-7-22 17:32:21 | 显示全部楼层 |阅读模式
1金钱
[mw_shl_code=c,true]while(1)
        {
                if(USART_RX_STA&0x8000)
                {                                          
                        len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
                        printf("\r\n您发送的消息为:\r\n\r\n");
                        for(t=0;t<len;t++)
                        {
                                USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
                                while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
                        }
                        printf("\r\n\r\n");//插入换行
                        USART_RX_STA=0;
                }else
                {
                        times++;
                        if(times%5000==0)
                        {
                                printf("\r\n精英STM32开发板 串口实验\r\n");
                                printf("正点原子@ALIENTEK\r\n\r\n");
                        }
                        if(times%200==0)printf("请输入数据,以回车键结束\n");  
                        if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
                        delay_ms(10);   
                }
        }         [/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

用几个换行是别人的习惯,你觉得不习惯你就用一个啊。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-7-22 17:32:22 | 显示全部楼层
用几个换行是别人的习惯,你觉得不习惯你就用一个啊。
回复

使用道具 举报

7

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2017-7-8
在线时间
46 小时
 楼主| 发表于 2017-7-22 17:34:44 | 显示全部楼层
上面代码显示的是正确的现象,如下
您发送的消息为:
XXXXX
但是搞不懂为什么需要两个换行符呀!
回复

使用道具 举报

7

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2017-7-8
在线时间
46 小时
 楼主| 发表于 2017-7-22 19:00:09 | 显示全部楼层
zuozhongkai 发表于 2017-7-22 17:56
用几个换行是别人的习惯,你觉得不习惯你就用一个啊。

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

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

所以有些搞不懂啊
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2017-7-22 22:32:00 | 显示全部楼层
豆子的愿望 发表于 2017-7-22 19:00
不好意思说的不是很明白,我之前写的是这样的 printf("\r\n您发送的消息为:\r\n");
按理说显示应该是
...

可以只需要一个。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2017-7-8
在线时间
46 小时
 楼主| 发表于 2017-7-23 14:56:43 | 显示全部楼层

那按照历程里的printf("\r\n您发送的消息为:\r\n\r\n")写法串口显示窗口的不应该是

您发送的消息为:

XXXXX

为什么实际结果是没有换行的
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2019-7-3
在线时间
6 小时
发表于 2019-7-3 16:21:13 | 显示全部楼层
豆子的愿望 发表于 2017-7-23 14:56
那按照历程里的printf("\r\n您发送的消息为:\r\n\r\n")写法串口显示窗口的不应该是

您发送的消息为:

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

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
发表于 2019-7-8 20:49:29 | 显示全部楼层
保证中间空一行显得好看啊
天然懒,天然呆
能吃会睡,未来可期
回复

使用道具 举报

0

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2019-7-24
在线时间
18 小时
发表于 2019-7-26 10:17:14 | 显示全部楼层
printf
能直接输出吗,不需要标志位吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-7 14:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表