野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8338|回复: 2

关于USART章节的一个疑问

[复制链接]
发表于 2017-12-8 18:25:42 | 显示全部楼层 |阅读模式
大家好,我又来提问了。这次的疑问是关于USART章节的,书上讲的我都明白了,但是有个疑惑书上没提,我看官方手册好像也没有说,就比较好奇。我的第一个问题是:USART_DR这个寄存器,在全双工通讯方式下,可以同时发送与接收数据,那么我很好奇在同时收发数据时,这个寄存器的低9位是怎么协调好什么时候当作RDR,什么时候当作TDR来使用的呢?
我的第二个问题是:输入移位寄存器与输出移位寄存器它们两个的地址在哪里?因为我看USART_DR是有确定地址的,但是那两个移位寄存器没说,看到那个USART的框图,就不是很明白移位寄存器在哪里。。。从收发数据的工作流程来看,我感觉移位寄存器和TDR,RDR是分开独立的两个东西,所以应该不在DR里吧?而TDR、RDR就是DR在发送与接收时的不同称呼。不知道我这样理解是否是正确的?


回复

使用道具 举报

发表于 2017-12-9 09:32:32 | 显示全部楼层
1.这个是影子寄存器,实际上芯片上有两个这样的缓冲区,当我们接收数据时,stm32会放在读缓冲区,发送数据时,会放在发送缓冲区,只不过为了简化我们的操作,他们都在同一个地址而已。

2.移位寄存器我们不需要访问,所以stm32不给出地址,它就是在读缓冲区前和发送缓冲区后
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-10 14:32:43 | 显示全部楼层
flyleaf 发表于 2017-12-9 09:32
1.这个是影子寄存器,实际上芯片上有两个这样的缓冲区,当我们接收数据时,stm32会放在读缓冲区,发送数据 ...

哇,这个解释十分的清晰!原来是这样,我懂了!谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-17 07:45 , Processed in 0.026786 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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