keil和jlink仿真调试stm32串口时,怎么一直看不到接收寄存器变化?程序不仿真直接运行是正

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keil和jlink仿真调试stm32串口时,怎么一直看不到接收寄存器变化?程序不仿真直接运行是正相关的知识,希望对你有一定的参考价值。

keil和jlink仿真调试stm32串口时,怎么一直看不到接收寄存器变化?程序不仿真直接运行是正确的

这说明你对单片机串口的结构不了解。
串口接收部分有一个移位寄存器和一个保持寄存器,每次读操作都会导致移位寄存器的内容被移到保持寄存器里。悲催的是,只要你调试时监控接收寄存器,那么仿真器是不停对串口进行读操作的……
所以对串口进行硬件调试是有一定技巧的。一般应当在接收处理时将接收到的数据(连同各标志)全部移到一个调试用的缓冲区中,开发人员通过对缓冲区中数据和标志的情况进行分析,判定串口部分工作是否正常。
参考技术A 不要单步去看寄存器变化,你把断点设在接收之后的一条语句再看。追答

不要单步去看寄存器变化,你把断点设在接收之后的一条语句再看。

用keil和Jlink进行对stm32进行硬件仿真,在仿真界面中怎样看IO口状态(就是怎样调出IO口的寄存器)

我发现硬件调试时候不能和软件仿真一样使用peripheral中IO窗口进行观察啊

对,Keil在硬件仿真的时候不能观测IO口状态,但是可以查看内存状态 参考技术A 想看IO状态直接看寄存器就可以了 参考技术B 看寄存器值的变化 就能看IO口状态了呗 O(∩_∩)O~

以上是关于keil和jlink仿真调试stm32串口时,怎么一直看不到接收寄存器变化?程序不仿真直接运行是正的主要内容,如果未能解决你的问题,请参考以下文章

STM32中的下载与调试?

为啥keil使用JLINK调试STM32要不报错,要不就是keil挂了?求大神指点。

accessport串口怎么连上keil

为啥在keil环境下,用重新烧写固件的Jlink在线调试下载STM32时总是连接不上,出现keil软件卡死的情况?

用keil和Jlink进行对stm32进行硬件仿真,在仿真界面中怎样看IO口状态(就是怎样调出IO口的寄存器)

使用Keil下载Hex文件进STM32