STM32使用Keil在线仿真虚拟示波器的配置与应用指南
最近在学习STM32定时器部分,因为涉及PWM模块,因此需要看波形,但手上没有示波器,就在网上学习了一下Keil的虚拟示波器怎么用,因此写一篇文章记录配置方式,废话不多说,进入正文。
第一步:点击魔术棒->Target->Xtal(MHz)改为8
这一步的目的是修改波形时钟频率相关的,具体笔者也不太清楚,感兴趣可以去网上了解,值得注意的是,keil mdk V5.36版本下似乎不能修改这一部分,原因是这个版本不支持直接在选择栏中来修改,具体参考
https://blog.csdn.net/qq_59619949/article/details/124083935
不过不能配置也不影响使用。
第二步:点击魔术棒->Debug->勾选Use Simulator,更改左边Dialog DLL为DARMSTM.DLL,下面对应的Parameter更改为-pSTM32F103C8(此处根据你所用单片机型号更改后缀,如下图我用的是STM32F103ZET6,则改为-pSTM32F103ZE),接着更改右边Dialog DLL为TARMSTM.DLL,对应的Parameter更改为-pSTM32F103C8(同上),随后保存关闭。
接着按下面按钮进入仿真页面
仿真页面点开示波器:
按Setup进入如下页面,接着按右上角添加要检测波形的引脚端口:
如上图,其中X是GPIO端口号,如GPIOA,GPIOB等等,n是引脚号,如添加GPIOA的GPIO_Pin_0则填GPIOA_IDR.0,添加完按回车。接着选中添加的端口,更改下面的Display Type为Bit,如下图
改完后关闭窗口,按下面两个按钮,先按RST(复位),再按右边(全速运行)(图中左上角):
就能看到波形了:
如果STM32F103C8添加端口时报错,可能是缺乏地址映射权限,解决办法如下:
1,在工程文件下新建Debug.ini文件。
2,写入以下内容:
map 0x40000000, 0x40007FFF read write // APB1
map 0x40010000, 0x400157FF read write // APB2
map 0x40020000, 0x4007FFFF read write // AHB1
map 0x50000000, 0x50060BFF read write // AHB2
map 0x60000000, 0x60000FFF read write // AHB3
map 0xE0000000, 0xE00FFFFF read write // CORTEX-M4 internal peripherals
3,魔术棒->Debug->…
4,找到刚才的文件添加再运行
作者:h6030