STVD 怎么看IO口输出的电平?

STVD 怎么看IO口输出的电平?,第1张

貌似 STVD没有波形这个功能。仿真时只能看相关寄存器。 可以参考下面的例子:

首先要在STVD中对COSMIC STM8编译器进行设置。 如下图所示,运行ST Visual Develop 集成开发环境,选择菜单"Tools ->Options",在出现的对话框中选择"Toolset"选项卡。在"Toolset"下拉菜单,选中"STM8S Cosmic",设置编译器的安装路径"Root path",然后选择"确定"。本例中选择的"Root path" 是:C:\Program Files\COSMIC\CXSTM8_16K。至此,就完成了COSMIC C编译器的设置完成。

图1

----软件仿真

要进行软件仿真,则要进行软件设置,选择菜单" Debug instrument ->Target Settings",进入了设置界面。在" Debug session"里面选择"Simulator",这样就完成了软件仿真设置。

打开相关调试文件

1. 打开测试文件test.stw(本教程是用test.stw的工程文件)

2. 载入后进入了编程画面,进入仿真界面,只要按菜单栏上的"Debug ->Start Debugging",或者按菜单栏上的蓝色按钮,就进入了仿真界面进行仿真。

(红色框框就是仿真按钮)

3. 软件仿真需要设置相应的寄存器的,在" Debug instrument"菜单下,可以设置相应的MCU设置。

----使用STLink III仿真器,硬件仿真

要进行硬件仿真,也要进行软件设置,选择菜单" Debug instrument ->Target Settings",进入了设置界面。在" Debug session"里面选择您所使用的仿真器,本例子是用的STLink,所以选择"Swim ST-Link",然后在"Target Port Selection"里面选择USB,接着按OK,这样就完成了硬件仿真设置。

打开相关调试文件

1. 打开测试文件test.stw(本教程是用test.stw的工程文件)

2. 硬件仿真需要设置相应的MCU型号的,如果MCU型号设置与实际不相符则无法进行仿真。载入了源文件之后,在" Project ->Settings ->MCU Selection"设置MUC型号。(修改过MCU型号后需要编译多一次)

3. 设置完MCU型号后,要进入仿真界面,只要按菜单栏上的"Debug ->Start Debugging",或者按菜单栏上的蓝色按钮,就进入了仿真界面进行仿真。

(红色框框就是仿真按钮)

● STM8之调试程序

下面简单介绍使用ST Visual Develop进行仿真调试

调试控制栏

调试控制栏可以控制程序的执行状态,所有的调试控制都可以由菜单,快捷键和调试工具栏实现。

1.开始调试(Start Debugging)

命令将启动调试模式,并使所有的调试控制命令处于有效。此命令将连接调试平台,装载目标文件并执行复位 *** 作。

2.停止调试(Stop Debugging)

此命令将停止调试过程,并断开与调试平台的连接,进入编辑模式。

3.光标跳转到当前程序处(Go To PC) 

让光标跳转到当前运行的程序语句行处。

4.全速运行(Run)(Ctrl+F5) 

调试菜单中的运行命令将启动(重启动)程序。程序将一直运行直到被用户停止或遇到一个断点。只有当程序处于停止运行状态时才能执行此命令。

5.复位(Reset)( Ctrl+ SHIFT+F5 ) 

此命令可以让目标程序复位。当程序正在运行时,无法执行此命令。如果用户是在源级模式中,程序会在复位完成后,跳回到第一条用户的源代码语句处。复位命令执行后,所有窗口中的信息都将更新。

6.重新开始应用程序(Restart Application)

此命令可以让目标程序复位并且条状到主函数。当程序正在运行时,无法执行此命令。此复位命令执行后,所有窗口中的信息都将更新。

7.继续运行(continue)

调试菜单中的暂停命令让暂停或者停留在断点的程序继续运行下去。

8.暂停(stop)(SHIFT+F5) 

调试菜单中的暂停命令将停止程序运行。当程序停止时,所有窗口中的信息都将更新。只有当程序处在运行状态时才能执行此命令。

9.逐过程(Step Into)(F11) 

调试菜单中的逐过程命令只执行一条指令。如果此条指令包含一个函数调用/子程序调用,该函数/子程序也会同时执行。如果在逐过程命令中遇到用户设置的断点,程序运行将被挂起。在逐过程命令执行完毕后,所有窗口中的信息才会被更新。

a.跳跃(Step Over)(F10) 

调试菜单中的跳跃命令会使程序不进入子程序运行,直到当前函数结束。如果遇到用户设置的断点,程序运行将被挂起。当程序处在最外层(如主函数)时,此时执行跳出命令,程序将继续运行,直到遇到一个断点或被用户停止。在该命令执行完成后,所有窗口中的信息都将更新。

b.汇编语言逐过程(Step Into ASM)(Alt+F11) 

调试菜单中的逐过程命令只执行一条指令。如果此条指令包含一个函数调用/子程序调用,该函数/子程序也会同时执行。如果在逐过程命令中遇到用户设置的断点,程序运行将被挂起。在逐过程命令执行完毕后,所有窗口中的信息才会被更新。

c. 汇编语言跳出(Step Over ASM)(Alt+F10) 

调试菜单中的跳出命令会使子函数程序一直运行,直到当前函数的汇编语言结束。如果遇到用户设置的断点,程序运行将被挂起。当程序处在最外层(如主函数)时,此时执行跳出命令,程序将继续运行,直到遇到一个断点或被用户停止。在该命令执行完成后,所有窗口中的信息都将更新。

d.跳出(Step Out)(Ctrl+F11) 

调试菜单中的跳出命令会使在子函数程序一直运行,直到当前函数的结束。如果遇到用户设置的断点,程序运行将被挂起。当程序处在最外层(如主函数)时,此时执行跳出命令,程序将继续运行,直到遇到一个断点或被用户停止。在该命令执行完成后,所有窗口中的信息都将更新。

e.运行到断点处(Run To Cursor)

调试菜单中的运行到断点处命令,将使程序运行到源代码的断点处停止。

f.运行到光标处(Run To Cursor)

调试菜单中的运行到光标处命令,将使程序运行到源代码窗口中光标指示的语句处停止。此时如果遇到用户的断点,程序的运行将不会被挂起。如果程序运行永远达不到光标指示处的语句,程序将一直继续运行,直到被用户停止。当此命令结束后,所有窗口中的信息都将更新。由于此命令是与光标位置有关,所以只有当源代码窗口激活时才有效。

添加函数定义

#ifdef USE_FULL_ASSERT

/**

* @brief Reports the name of the source file and the source line number

* where the assert_param error has occurred.

* @param file: pointer to the source file name

* @param line: assert_param error line source number

* @retval None

*/

void assert_failed(uint8_t* file, uint32_t line)

{

/* User can add his own implementation to report the file name and line number,

ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

/* Infinite loop */

while (1)

{

}

}

#endif


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11326144.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存