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输出,并且不宜加入过多的时序控制,像多定时器这样,功能过于复杂会使仿真失败,软件仿真主要以验证小功能为主,大的系统级工程软件仿真本质上还是吃不消的

  • 12
    点赞
  • 121
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值