USART只有一个DR寄存器,当数据正在发送时产生了接收中断怎么办

[复制链接]
4555|5
 楼主| louc 发表于 2012-12-19 12:51 | 显示全部楼层 |阅读模式
我用的是stm32f10x,只有一个USART_DR寄存器,当数据还没有发送成功时来了一个接收中断,那么USART_DR中的数据岂不是被覆盖了? 我看到框图里写了一个发送寄存器TDR和一个接受寄存器RDR,那为什么程序中表现的只有一个USART_DR(地址0x40013804)呢?
killvx 发表于 2012-12-19 13:56 | 显示全部楼层
发送寄存器TDR和接收寄存器RDR 是同一个地址 0x40013804
选择不同模式 接收或发送时 自动切换寄存器的
jlass 发表于 2012-12-19 14:11 | 显示全部楼层
应该是一个只能读,一个只能写
 楼主| louc 发表于 2012-12-19 14:12 | 显示全部楼层
killvx 发表于 2012-12-19 13:56
发送寄存器TDR和接收寄存器RDR 是同一个地址 0x40013804
选择不同模式 接收或发送时 自动切换寄存器的 ...

是不是对USART_DR读的时候读的是RDR,对USART_DR写的时候操作的是TDR?

评论

对的  发表于 2012-12-19 14:17
zchong 发表于 2012-12-20 13:10 | 显示全部楼层
表面上是一个寄存器,其实不是,可以全双工,同时收发

评分

参与人数 1威望 +1 收起 理由
louc + 1 2

查看全部评分

 楼主| louc 发表于 2012-12-20 18:50 | 显示全部楼层
zchong 发表于 2012-12-20 13:10
表面上是一个寄存器,其实不是,可以全双工,同时收发

抱歉,点错了,本来结贴给分的...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

0

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部