前言
在学习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中可以看到大部分寄存器的状态,可以调用进行查看,基本上大部分基础功能的仿真验证都能做到文章来源:https://www.toymoban.com/news/detail-779762.html
注意事项
在仿真过程中很多时候会出现不出波形,或者其他各种情况,这些问题其实本质上是由于仿真本身具有一定的局限性,关于有延时的仿真,晶振一定要改为8MHz,至于其他的部分输入和输出尽量分开,比如GPIOA.1输入,则用GPIOB.2输出,并且不宜加入过多的时序控制,像多定时器这样,功能过于复杂会使仿真失败,软件仿真主要以验证小功能为主,大的系统级工程软件仿真本质上还是吃不消的文章来源地址https://www.toymoban.com/news/detail-779762.html
到了这里,关于Keil软件仿真步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!