OpenEdv-开源电子网

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

串口打印函数的使用问题求助

[复制链接]

3

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2019-4-26
在线时间
10 小时
发表于 2019-10-16 21:41:13 | 显示全部楼层 |阅读模式
2金钱
看了原子哥的视频想试一下串口打印函数,结果发现这个函数放在while循环里面才能在串口上打印自己想要的字符,但如果放在外面却没有用,这是为什么??

最佳答案

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

放在下面能显示 说明函数没错 放在上面就不显示了 可能是你操作的问题 你把线全部连好后 按单片机复位按键重新跑 看看有没有打印出来
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

146

帖子

0

精华

高级会员

Rank: 4

积分
922
金钱
922
注册时间
2018-7-18
在线时间
385 小时
发表于 2019-10-16 21:41:14 | 显示全部楼层
放在下面能显示  说明函数没错   放在上面就不显示了  可能是你操作的问题   你把线全部连好后 按单片机复位按键重新跑 看看有没有打印出来
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2019-10-17 02:26:41 | 显示全部楼层
代码呢?
回复

使用道具 举报

6

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2019-7-25
在线时间
57 小时
发表于 2019-10-17 08:51:38 | 显示全部楼层
不知道你问什么,我猜你说的是main函数的while(1)?
----------------肉粒多真好吃呀
回复

使用道具 举报

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2019-10-16
在线时间
7 小时
发表于 2019-10-17 08:55:47 | 显示全部楼层
不贴一段代码你这样说没人懂啊,比如万一你把函数写在while的后面的呢
回复

使用道具 举报

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2019-10-16
在线时间
7 小时
发表于 2019-10-17 08:56:32 | 显示全部楼层
没代码我们怎么懂呢?是不是你把函数写到while的后面了进不去
回复

使用道具 举报

3

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2019-4-26
在线时间
10 小时
 楼主| 发表于 2019-10-17 10:40:42 | 显示全部楼层

int main(void)
{
  u8 t;
        u8 len;       
        u16 times=0;
        delay_init();                     //  
        NVIC_Configuration();          //
        usart_init(9600);         //
        LED_Init();                             //
        KEY_Init();          //
        printf("fucking  you");//放在这里就不行,无法显示,一定要放在下面的循环里面
while (1)
  {
                if(USART_RX_STA&0x8000)
                {                                          
                        len=USART_RX_STA&0x3fff;
                        printf("\r\n muji \r\n\r\n");
回复

使用道具 举报

3

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2019-4-26
在线时间
10 小时
 楼主| 发表于 2019-10-17 10:41:20 | 显示全部楼层
第一次发帖,不会发图片
回复

使用道具 举报

6

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2019-7-25
在线时间
57 小时
发表于 2019-10-17 10:51:19 | 显示全部楼层
你不放在while(1)里面,运行完这个程序就结束了呀
----------------肉粒多真好吃呀
回复

使用道具 举报

3

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2019-4-26
在线时间
10 小时
 楼主| 发表于 2019-10-17 11:41:34 | 显示全部楼层
yigedaluobo 发表于 2019-10-17 10:51
你不放在while(1)里面,运行完这个程序就结束了呀

至少放在外面,它应该会显示一次吧,可是一次都不显示,这正常吗???
回复

使用道具 举报

6

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2019-7-25
在线时间
57 小时
发表于 2019-10-17 12:46:59 | 显示全部楼层
mujiaa 发表于 2019-10-17 11:41
至少放在外面,它应该会显示一次吧,可是一次都不显示,这正常吗???

你放在外面,当串口没有接收数据时,if不满足,已经运行过去了,跑完了你再串口接收也没用啊
----------------肉粒多真好吃呀
回复

使用道具 举报

4

主题

178

帖子

0

精华

高级会员

Rank: 4

积分
672
金钱
672
注册时间
2019-7-28
在线时间
61 小时
发表于 2019-10-17 13:05:47 | 显示全部楼层
楼上有理,你只有复位重新启动才会“打印”一次
回复

使用道具 举报

3

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2019-4-26
在线时间
10 小时
 楼主| 发表于 2019-10-17 16:44:44 | 显示全部楼层
yigedaluobo 发表于 2019-10-17 12:46
你放在外面,当串口没有接收数据时,if不满足,已经运行过去了,跑完了你再串口接收也没用啊

我一开始也是这样认为的,但是仔细想一下打印函数跟if没关系,if是用来判断你是否接受到数据的
回复

使用道具 举报

3

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2019-4-26
在线时间
10 小时
 楼主| 发表于 2019-10-17 16:45:51 | 显示全部楼层
wwhh 发表于 2019-10-16 21:41
放在下面能显示  说明函数没错   放在上面就不显示了  可能是你操作的问题   你把线全部连好后 按单片机复 ...

老哥,你怎么想到的,太神了,那为什么下载完不显示呢?
回复

使用道具 举报

3

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2019-4-26
在线时间
10 小时
 楼主| 发表于 2019-10-17 16:46:39 | 显示全部楼层
glenxu 发表于 2019-10-17 13:05
楼上有理,你只有复位重新启动才会“打印”一次

确实是这样
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-5 09:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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