Keil软件仿真操作步骤详解

目录


前言

在学习STM32的过程中会不可避免的遇到需要仿真的情况,其实大部分时候都是直接使用ST-Link进行硬件仿真,不过Keil自带的软件仿真功能同样强大,一般的波形或者中断之类的也是可以仿真的,所以针对使用频率不是那么高,但是万一有一天忘了带板子的情况,写一下简单的软件仿真的步骤


一、准备工作

首先需要修改“debug”标签的内容,该部分配置直接看图:

主要修改的地方就三个:
“Use simulaor”代表要使用软件模拟仿真
“dialog DLL”的内容是“DARMSTM.DLL“,表示使用STM系列
“parameter”的内容是“-pSTM32F103RC“,这里匹配的是当前单片机的型号
然后其他的 ”√” 照着图中的就行,这里把硬件仿真顺道提一下,只需要把“dialog DLL”的内容换成“TARMSTM.DLL“,其他的和软件仿真一样。如果我们用的是其他型号,比如STM32F103C8T6,只需要把“-pSTM32F103RC“改成“-pSTM32F103C8“,其他的以此类推

另外一个需要配置的就是时钟,配置如下:

这里主要是指的晶振,把时钟改为8M就行

二、仿真

1.波形验证

点击图中的debug图标,进入软件仿真界面,

选择逻辑分析仪,

这时,假设我们要看PD2引脚输出的PWM波形,需要完成图中三个红框的配置,第一个就是寄存器,需要分析的是GPIOD_ODR,即输出的电平,这里由于我们程序中设置的是输出高低电平01,故而在display中设置Bit,然后shift right设置为2,如果是PD0则设置为0,同样的道理,换成其他的引脚,比如PA1,相应的signal设置为GPIOA_ODR,shift right设置为1

点击run之后,逻辑分析仪出现PWM波形,

和我们程序中设置的10ms的变化间隔一致,故而程序运行正常

2.变量验证


设置一个全局变量test,然后把它加入到窗口中,把变量与中断关联,每发生一次外部中断就自加1,这样就可以验证外部中断,如果要实现外部中断,则需要以下步骤:


我们设置PA0外部中断,上升沿触发,只需要反复用“√”在其对应的Pin处使使它不停产生上升沿就能使变量test累加

3.其他


在system viewer中可以看到大部分寄存器的状态,可以调用进行查看,基本上大部分基础功能的仿真验证都能做到


注意事项

在仿真过程中很多时候会出现不出波形,或者其他各种情况,这些问题其实本质上是由于仿真本身具有一定的局限性,关于有延时的仿真,晶振一定要改为8MHz,至于其他的部分输入和输出尽量分开,比如GPIOA.1输入,则用GPIOB.2输出,并且不宜加入过多的时序控制,像多定时器这样,功能过于复杂会使仿真失败,软件仿真主要以验证小功能为主,大的系统级工程软件仿真本质上还是吃不消的

物联沃分享整理
物联沃-IOTWORD物联网 » Keil软件仿真操作步骤详解

发表评论