野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9075|回复: 9

串口输入16进制控制彩灯----串口刷屏问题?

[复制链接]
发表于 2017-7-20 10:13:01 | 显示全部楼层 |阅读模式
      如图 串口输入16进制控制彩灯1.jpg
没有开启中断的情况下,将此程序烧录进板卡中,串口显示信息会不断的刷屏,如下
22.jpg
为什么会一直刷屏呢?我没有给串口发送数据的时候,难道电脑的串口其实一直在给板卡发送什么数据吗?我尝试开启过中断,也没什么用,该刷屏还是刷屏。现在图片中显示的程序,我将原来的while(1)改成了while(ucTemp<9 | ucTemp>0),当串口输入值是这个范围的时候,会正常显示彩灯,不刷屏。原来的while(1)也会正常显示彩灯,但是还是一直刷屏。
回复

使用道具 举报

 楼主| 发表于 2017-7-20 10:19:54 | 显示全部楼层
将// default:
// Show_Message();
// break;
这几句去掉了,就不刷屏了。
但是就是感觉上是不是串口一直在while语句里循环,这样会不会很占用单片机资源。而且switch语句中不加我去掉的default那几句可以吗?就算是不加,串口也是在while里循环吧?只是没有输出显示而已?
回复 支持 反对

使用道具 举报

发表于 2017-7-20 10:24:30 | 显示全部楼层
那就是一直执行 default 语句了,你用仿真器仿真看看,一步一步执行,看下程序是不是按照你想的那样执行,很快就可以找到问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-20 16:21:34 | 显示全部楼层
已解决刷屏问题,在ucTemp = USART_ReceiveData( DEBUG_USARTx );下一行加了一句while(USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_RXNE) == RESET);后不再刷屏了。
但是串口发送需要发送两次,不知道为啥
回复 支持 反对

使用道具 举报

发表于 2017-7-20 19:45:14 | 显示全部楼层
100633fzftrrxns2bfabpr.jpg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-21 08:43:33 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2017-7-21 13:19:51 | 显示全部楼层

之所以要加上while(USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_RXNE) == RESET);是为了确保你接收到了数据才能读数据,因为收到数据之后RXNE位才为1,读取数据之后自动清零。如果不加,那么会一直读取数据寄存器里的数据,而这个数据可能是任意的,所以才会一直执行数据Receive_Data()和switch,并且switch一直是default。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-7-21 16:36:45 | 显示全部楼层
飔箣 发表于 2017-7-21 13:19
之所以要加上while(USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_RXNE) == RESET);是为了确保你接收到 ...

想给你竖个大拇指,找了半天表情没找到。
回复 支持 反对

使用道具 举报

发表于 2017-7-23 16:10:02 | 显示全部楼层
我也是楼主一样的问题。一直刷屏。
后来加了那句while后不刷屏了,但是无论发送什么数据都不显示
求救
1.png
2.png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-24 11:50:44 | 显示全部楼层
海和鱼 发表于 2017-7-23 16:10
我也是楼主一样的问题。一直刷屏。
后来加了那句while后不刷屏了,但是无论发送什么数据都不显示
求救

我也是新手啊,可能说的不对啊。我的程序里没有使用中断,直接将uctemp=receive。。。。什么了。你这个使用中断了,你得看看在串口配置中你有没有将接收中断打开吧。我这么理解的啊
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 18:39 , Processed in 0.046165 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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