请教一个关于串口的问题

2019-07-20 14:53发布

RT,今天我在玩一个STM32和外设通过串口通信的问题,因为外设只有一个串口,所以接收发送都是用的串口2,但是现在出现一个问题,发送的时候会把接收到的数据一起发送过去,我的理解是,发送和接收共用DR寄存器,发送的时候是将DR寄存器内的东西全部发送出去,其中除了USART->DR=BUF[t]中赋予的值之外,还有接收到的值,所以我试着用以下两种方式来解决,但是都失败了。。。第一种,我是在发送前先USART2->CR1&=0<<2,不使能接收,等发送完成之后再使能接收,但是这样stm32直接就不能发送数据了。。。第二种,我是想当RXNE为0的时候再发送数据,如果RXNE为1就不发送,并且将RXNE置零,但是这样STM32还是一样不能发送数据了。。。请大神指点迷津。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
zmingwang
1楼-- · 2019-07-20 15:31
 精彩回答 2  元偷偷看……
18323054303
2楼-- · 2019-07-20 17:31
zmingwang 发表于 2017-4-29 11:40
虽然DR是收发共用,但是却对读写操作分别映射了RDR和TDR两个寄存器,所以发送时不可能把RDR的数据发出去.
US ...

非常感谢

一周热门 更多>