我直接给串口数据寄存器赋值(如0X31),在调试过程中该寄存器一直为0,不知到底哪里出问题,帮帮啊。
如果发送0X11,但用串口调试工具接收是莫名的码,调试却发现数据寄存器一直为0,到底是怎么回事?
stm32单片机
串口寄存器 USART2->DR=0X31; 调试中发现USART2->DR一直为零,不是0x31.
后来把USART2->DR用它物理地址换上后再往里写0x31,调试中发现MEMORY ADDRESS调试框中的串口地址的内容仍是零。
它的读和写可能是不同的寄存器....读是接收,写是发送,虽然它们是同一个地址.
读写是不同的寄存器,请问这样调试是怎么区分?是不是设置发送后就用发送寄存器,接收就用接收寄存器。具体是它的内部CONTROL了。我就是按找这种思路坐的。不知对不对?
为什么是USART2->DR=0X31;//SFR一般是一个地址,怎么是指针USART2->
一般来说,UART的发送和接收寄存器会使用相同的地址. 也就是说,发送寄存器是无法读的, 你读的总是接收寄存器.
回复 11楼 leafky 的帖子
楼主说一下是怎么解决的,谢谢