|
MDK 的一个强大的功能就是提供软件仿真,通过软件仿真,我们可以发现很多将要出现的问题,避免了下载到 STM32 里面来查这些错误,这样最大的好处是能很方便的检查程序存在的问题,因为在 MDK 的仿真下面,你可以查看很多硬件相关的寄存器,通过观察这些寄存器,你可以知道代码是不是真正有效。另外一个优点是不必频繁的刷机,从而延长了 STM32的 FLASH 寿命(STM32 的 FLASH 寿命≥1W 次)。当然,软件仿真不是万能的,很多问题还是要到在线调试才能发现。5 w' P# o l- e) k- { & q) ^ x ]6 i4 u* s/ j 检查配置! f( }! Y0 y+ \. Z 如下图
, K' A/ ^) r5 P5 _6 w4 D; s Debug 选项卡8 r3 d6 ~$ o: L Use Simulator,即使用软件仿真。选择:Run to main(),即跳过汇 编代码,直接跳转到 main 函数开始仿真。设置下方的:Dialog DLL 分别为:***DARMSTM.DLL ****和 TARMSTM.DLL, Parameter 均为:* a- k0 D" j# i% N- i! m1 l -pSTM32F103ZE ,用于设置支持 STM32F103ZE 的软硬件仿真(即可以通过Peripherals 选择对应外设的对话框观察仿真结果)。最后点击 OK,完成设置。
开始仿真' v% w' @7 T8 Q+ O( ] 我们点击
( l( r7 e/ f; s, a( \' v. u
Debug工具条3 I; f. Q3 a$ A; ]3 r* E$ B" v. A
复位:相当于硬件复位按键,从头开始 0 q% j. g1 S0 h; n2 H 执行到断点处:该按钮用来快速执行到断点处 挂起:可以使程序停止下来,进入到单步调试状态 3 t+ f1 K' S5 {8 |4 G 执行进去:实现执行到某个函数里面去的功能,在没有函数的情况下,是等同于执行过去按钮的 4 t+ N! ?; x6 E4 B; ]+ n' X$ ` 执行过去:在碰到有函数的地方,通过该按钮就可以单步执行过这个函数,而不进入这个函数单步执行/ q6 t3 d% P( ~4 y: y 执行出去:该按钮是在进入了函数单步调试的时候,有时候你可能不必再执行该函数的剩余部分了,通过该按钮就直接一步执行完函数余下的部分,并跳出函数,回到函数被调用的位置。 # E7 }# D8 b9 P( I% u 执行到光标处:可以迅速的使程序运行到光标处,其实是挺像执行到断点处按钮功能,但是两者是有区别的,断点可以有多个,但是光标所在处只有一个。+ I) J, H6 d6 V# ?5 }+ o/ @ 汇编窗口:可以查看汇编代码,这对分析程序很有用。- P& B: q: o1 z8 s ` 观看变量/堆栈窗口:显示变量的窗口,在里面可以查看各种你想要看的变量值,也是很常用的一个调试窗口。 性能分析窗口:观看各个函数执行时间和所占百分比的窗口,用来分析函数的性能- U9 D( S/ |6 m0 {7 H! ] 逻辑分析窗口:按下该按钮会弹出一个逻辑分析窗口,通过 SETUP 按钮新建一些 IO 口,就可以观察这些 IO 口的电平变化情况,以多种形式显示出来,比较直观。 ————————————————" F% A4 W( y7 g( }% O6 c! X+ W, u 版权声明:Mr Harsh 如有侵权请联系删除 + d0 f* j3 s) z |
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:雨露均沾·逢7狂欢】之五:STM32系统时钟PLL故障排除1例
【福利三:雨露均沾·逢7狂欢】之三:AI帮我查BUG
福利三:雨露均沾·逢7狂欢】之二:STM32F407VG串口通信乱码故障的排除
基于STM32F103的I2C主从机通信
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
2025软件工具兔哥知道
STM32之继电器模块
微信公众号
手机版