利用KEIL的软件仿真的逻辑分析仪功能观察GPIO的波形
在日常工作中,逻辑分析仪和示波器是MCU工程师必不可少的工具,有时候程序有BUG的时候就需要用到这些工具看波形,从而更快地定位到问题所在,进而解决问题。
但是除了成本以外,我们也不可能时时刻刻把这些工具携带在身边,所以keil的软件仿真功能中的逻辑分析仪在这个时候就体现出非凡的意义了。
下面的使用步骤是我通过查阅网上资料以及自己实践得出的,如果错漏,敬请斧正:
1、首先,设置options for target:
①Target页的设置:
图1:options for target ->Target
Target界面中,选择跟正确的晶振大小,我使用的是8MHz的外部晶振。这个选项在软件仿真中起到很重要的作用,如果选择错误,那么波形一定是错误的,因为时间不准确。此前,我增加默认为72MHz,结果波形与预料的不一致,原本是1s翻转一次的波形,显示出来的周期比预想的长得多。不过这个参数只是在软件仿真中起作用,当程序在硬件中运行并没有影响。
②Debug页的设置:
图2:options for target -> Debug
首先应该选择Use Simulator,其次是Run to main()选项打钩,然后分别修改上图中的 3 、4、5 、6,注意,3和5在STM32的单片机中应该都是固定的,但是4和6是跟你所采用的具体某一款单片机是对应的。4和6应该是图1中STMicroelectronics 保持一致。
按照以上步骤设置后点击OK,完成设置。
2、点击Debug,进入调试界面:
3、选择逻辑分析仪:
4、选择要观察的引脚:
①点击Setup Logic Analyzer
②添加要观察的引脚:
注意:图中选择的两个引脚分别是PE8和PE9,其中,PORTE就是端口E,如果是GPIOA,那么对应的也应该写成PORTA,PORTE & 0x00000100后再右移8位也就把PE8的状态获取出来,1就是高电平,0就是低电平。PE9同理。一定要选择Bit,颜色是为了区分不同的引脚,根据需要配置即可。设置完成后退出,就可以在后续的操作中观察到波形。
PS:如果上述步骤1中的Debug页中3、4 、5 、6没有正确设置,那么在添加引脚的时候就会出现报错:Unknown Signal !
5、运行程序:
6、观察波形,把光标移动到逻辑分析仪显示波形的区域,上下滚动滑轮,就可以放大和缩小波形:
还可以直观地计算波形的宽度:移动光标的位置到某一个点,单击鼠标左键就会把这个点设置为起始点,然后移动光标到另一个位置就可以看到很多的信息,包括时间还有两点之间的时间差,也就是宽度,如图所示:
以上就是查看波形的所有步骤。当然,在调试时最好能用示波器或者逻辑分析仪来测量引脚的波形,硬件上进行实际的调试才能最直观地观察现象和定位问题。