ARM单片机串口数据寄存器不能读写的问题

zhangzhenyuan   2009-8-10 13:35 楼主
我直接给串口数据寄存器赋值(如0X31),在调试过程中该寄存器一直为0,不知到底哪里出问题,帮帮啊。

回复评论 (12)

如果发送0X11,但用串口调试工具接收是莫名的码,调试却发现数据寄存器一直为0,到底是怎么回事?
点赞  2009-8-10 13:38
不明白你是如何做的
点赞  2009-8-10 13:38
stm32单片机
串口寄存器 USART2->DR=0X31; 调试中发现USART2->DR一直为零,不是0x31.
后来把USART2->DR用它物理地址换上后再往里写0x31,调试中发现MEMORY ADDRESS调试框中的串口地址的内容仍是零。
点赞  2009-8-10 13:49
它的读和写可能是不同的寄存器....读是接收,写是发送,虽然它们是同一个地址.
点赞  2009-8-10 17:18
引用: 引用 4 楼 great_bug 的回复:
它的读和写可能是不同的寄存器....读是接收,写是发送,虽然它们是同一个地址.


你的意思是不是还是设置没有做好,那我再查查~
点赞  2009-8-11 09:22
引用: 引用 4 楼 great_bug 的回复:
它的读和写可能是不同的寄存器....读是接收,写是发送,虽然它们是同一个地址.


你的意思是不是还是设置没有做好,那我再查查~
点赞  2009-8-11 09:22
读写是不同的寄存器,请问这样调试是怎么区分?是不是设置发送后就用发送寄存器,接收就用接收寄存器。具体是它的内部CONTROL了。我就是按找这种思路坐的。不知对不对?
点赞  2009-8-11 09:29
为什么是USART2->DR=0X31;//SFR一般是一个地址,怎么是指针USART2->
点赞  2009-8-11 14:42
一般来说,UART的发送和接收寄存器会使用相同的地址. 也就是说,发送寄存器是无法读的, 你读的总是接收寄存器.
点赞  2009-8-11 20:52
问题解决了,谢谢各位!
点赞  2009-8-21 16:36

12楼 10 

请问你是怎么解决的?
点赞  2009-10-23 21:57

回复 11楼 leafky 的帖子

楼主说一下是怎么解决的,谢谢
点赞  2012-4-9 16:07
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复