此文章针对MDK对于stm32 f1系列芯片内容的仿真,keil对于f4系列目前不提供仿真功能
1.设置参数
1.1点击这个按键
1.2检查芯片型号和晶振频率如下图
1.3参数按照下图图示所设置
选择: Use Simulator ,即使用软件仿真。选择 Run to main() main(),即跳过汇编代码,直接跳转到 main 函数开 始仿真。设置下方的: Dialog DLL 分别为: DARMSTM.DLL
和 TARMSTM.DL L Parameter 均为: p STM32F103 ZE ,用于设置支持 STM32F10 3ZE 的软硬件仿真(即可以通过 Perip herals 选择对应外 设的对话框观察仿真 结果)。最后点击 OK ,完成设置 。
1.4点击
开始仿真
出现下图界面
debug工具条各功能如下
设置断点
点击RST旁边的
按钮,运行至断点处
1.5查看串口状态
可以看到串口1及其对应寄存器初始化前后的状态
不过比较常用的是检测串口的输出
执行过printf函数之后,串口会依次打印显示信息
这里可以为了调试方便加一些输出信息(printf),便于找bug
2.逻辑分析窗口
点击
进入逻辑分析窗口
点击下图的
新建监视的引脚
输入为这样
回车自动变为
比如你要监视PE5(GPIOE的GPIO_PIN_5),你需要输入PORTE.5,回车可以看到下图所示,表示添加成功
这里还添加了PORTB.5
注意需要设置Display Type为Bit。然后点击close关闭对话框
可以看到逻辑分析窗口如下图
运行一段时间后,点击中断按钮,显示如下图所示(运行的时候发现没有产生波形不要慌,中断之后,调整Grid(变大/变小),可能是你的比例尺没有设置好)
3.按键仿真
按键仿真也是要通过你设置的按键的io口的高低电平来仿真
首先找到你的程序对应按键的io口
比如这样的定义
对应关系为
按键 引脚
KEY0 PE4
KEY1 PE3
KEY2 PE2
WK_UP PA0
KEY4 PE1
或者这种
然后再点击
Peripherals ->General Purpose I/O -> GPIO E ,弹出 GPIOE 的查看窗口,如图
确认你的按键初始化时设置的是上拉输入还是下拉输入
例如
因为这里我的PE1,PE2,PE3,PE4对应的都是上拉输入,所以要在这里将对应的4位勾选上
后续取消勾选表示对应按键被按下,触发相应的操作,恢复勾选表示按下按键之后松开,比如按下PE3对应的按键
设置为下拉输入的则相反
对应可以查看key值是否与自己设置的相符
我设置的按下PE2的返回值为2.
最后结束仿真需要再一次按键(右5棒棒糖)
希望这篇文章能对初次使用MDK进行仿真的小伙伴有帮助。