OpenEdv-开源电子网

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

如何清除USART2->DR中的内容

[复制链接]

50

主题

193

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2016-4-11
在线时间
141 小时
发表于 2016-8-4 16:56:27 | 显示全部楼层 |阅读模式
10金钱
如题,谢谢
我通过串口发送一个数据,然后判断,有这个数据就点亮LED,没有就灭
现在 每次都能监测到有。  

最佳答案

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

这个接收内容根本就不能软件清除。 必须先判断标志,然后再读,否则就是重复读取旧库存。 或者用中断。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11544
金钱
11544
注册时间
2014-4-1
在线时间
1315 小时
发表于 2016-8-4 16:56:28 | 显示全部楼层

这个接收内容根本就不能软件清除。

必须先判断标志,然后再读,否则就是重复读取旧库存。
或者用中断。

回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-8-4 17:17:20 | 显示全部楼层
发送新的数据覆盖掉他。往里面写数据是覆盖不掉的好像
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2016-8-4 18:26:46 | 显示全部楼层
发送0就相当于清除。你这里的清除USART2->DR中内容的思路应该是错误的
回复

使用道具 举报

50

主题

193

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2016-4-11
在线时间
141 小时
 楼主| 发表于 2016-8-5 09:01:37 | 显示全部楼层
憨厚诚实大叔 发表于 2016-8-4 17:17
发送新的数据覆盖掉他。往里面写数据是覆盖不掉的好像

我的目的是这样:
当从串口接收到一个数字1,LED亮,否则灭:
a=receivedata
if(a=1) LED亮
else LED灭。
我发现,假如我发过来一次1,之后不发了。
但是DR寄存器中的值一直是这个1, LED一直亮。
我想找个办法,把DR寄存器清零或者怎么样,目的是上一次我发了1,现在我不发了,能识别出来,LED也是灭的。
我发新数据肯定能覆盖DR寄存器的值,这个我知道。
谢谢
回复

使用道具 举报

50

主题

193

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2016-4-11
在线时间
141 小时
 楼主| 发表于 2016-8-5 09:01:49 | 显示全部楼层
龙之谷 发表于 2016-8-4 18:26
发送0就相当于清除。你这里的清除USART2->DR中内容的思路应该是错误的

我的目的是这样:
当从串口接收到一个数字1,LED亮,否则灭:
a=receivedata
if(a=1) LED亮
else LED灭。
我发现,假如我发过来一次1,之后不发了。
但是DR寄存器中的值一直是这个1, LED一直亮。
我想找个办法,把DR寄存器清零或者怎么样,目的是上一次我发了1,现在我不发了,能识别出来,LED也是灭的。
我发新数据肯定能覆盖DR寄存器的值,这个我知道。
谢谢
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2016-8-5 09:21:42 | 显示全部楼层
滴丶滴 发表于 2016-8-5 09:01
我的目的是这样:
当从串口接收到一个数字1,LED亮,否则灭:
a=receivedata

你自己捋一下思路吧,我个人感觉你不是思路错了就是偏离正常轨道了
把原子哥串口中断协议再多看几遍
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复

使用道具 举报

50

主题

193

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2016-4-11
在线时间
141 小时
 楼主| 发表于 2016-8-5 09:23:22 | 显示全部楼层
龙之谷 发表于 2016-8-5 09:21
你自己捋一下思路吧,我个人感觉你不是思路错了就是偏离正常轨道了
把原子哥串口中断协议再多看几遍

我没有用中断,算了,我还是改成中断吧。
谢谢了、
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-8-5 09:26:11 | 显示全部楼层
滴丶滴 发表于 2016-8-5 09:23
我没有用中断,算了,我还是改成中断吧。
谢谢了、

你对DR进行写操作时,他会映射到外设的发送寄存器。准确说,你对DR的写操作和读操作对应的不一样的。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 07:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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