基于STM32调试工具STM-STUDIO-STM32的使用
手上有stlink下载器,正好看到官网有这个工具,可以在运行中实时查看变量的数据。这一点和ucos的ucprobe很类似。
STMStudio是通过导入调试文件(.elf .out .axf)来实现调试和诊断的。
所以,你需要提前准备调试文件(.elf .out .axf)。
1.Keil MDK-ARM:编译之后,会在你工程中Objects目录下生成一个.axf调试文件。
2.IAR EWARM:编译之后,会在你工程中Exe目录下生成一个.out调试文件。
不过有区别:
STM-STUDIO-STM32是免费的,安装包小巧,仅限于stm32cpu,仅限于st-link下载器,只要运行stm的程序,都可以看,有无rtos均可,我的理解是变量只能是全局变量,函数里的自动变量无法查看。这个在导入变量的时候,就可以看到了,只有全局变量。
ucprobe需要jlink配合,无cpu限制,收费软件,能查看运行ucos系统的单片机,要是裸系统,则为验证过,变量也只能是全局变量,函数里的自动变量无法查看。
这样看多了一个调试的手段,而不用在keil里面添加变量,看数据,毕竟指示变量的数值,没有一个波形,STM-STUDIO-STM32可以在运行的时候查看变量的变化,这一点很有帮助。用户可以多方面的选择调试手段。
以上是自己的理解,以下是如何使用的转载文章。
原文作者:STM32中文社区网友toofree
同时参考https://www.mianbaoban.cn/mp/a4162.html
笔者参考STM32电机控制培训材料,将带着大家一步步学习STMStudio使用。
首先打开软件“STMStudio”。
打开后,显示如下空白工程界面。然后从文件菜单中选择导入变量选项。
选择浏览选项,去查找可用的目标文件。文件格式支持有“elf”、“out”、“axf”。找到我们本次使用的文件
“SDK50x-P-NUCLEO-IHM001-BullRunning.out”,确认选择可执行文件。
选择我们本次要观察的两个变量,“Tuning_ACD ”和“Tuning_Iqref ”,导入。
可看到左边显示变量设置中,已经出现我们添加的两个变量。 在观察设置中,点鼠标右键,弹出右键菜单中选择新建VarViewer。建议多添加一个VarViewer,ADC有采样值变化与转矩不在同一范围。如果在同一窗口,一个波形幅度太小。
可以看到,出现两个VarViewer窗口:
在变量“Tuning_ACD ”上,点鼠标右键,选择发送到VarViewer1。在变量“Tuning_Iqref ”上,点鼠标右键,选择发送到VarViewer2。
可以看到在两个VarViewer窗口下方分别出现“Tuning_ACD ”和“Tuning_Iqref ”字样,表示本窗口为各自观察窗口。点开始按钮,开始记录波形:
打开“Workbench”软件,打开Monitor监控窗口。连接已刷相应固件的目标板,并打开“Plotter”绘图窗口。
在“Workbench”的“Plotter”绘图窗口,“STMStudio”的VarViewer同时观察,转动电位器时,对应各变量的波形变化。
保存工程设置,文件菜单中选择Save Project As... 设置相应的路径与文件名,并保存为tsc文件,这个只是用户设置文件,浏览打开此文件也可打开工程。
点“显示设置”按钮,可以看到左边的绿色工程名。在此界面下,再次Save Project As...的时候,将弹出保存为STM Studio工程文件,tsp文件。
至此,完整的STM Studio工程建立、变量波形观察、保存工程,已经完成。下次直接浏览打开工程即可,不必每次都设置。
在第一次观察波形的时候,波形横向跑得很快,即时间轴单位比较小。并且纵向值区间也比较小。那么如果想要让波形显示慢一点,想在同一个窗口观察更多更完整的波形数数据,
该如何操作呢?
先跑一次程序,并且将电位器向两端各自打开头,也就是让变量的值出现满量程,然后停止。在停机状态下,在VarViewer窗口,有效数据区域,点鼠标左键,并向左拖动鼠标,这时将显示完整波形。点住左键,向右拖鼠标的话,把框选局部波形,将波形放大显示。
可看到完整波形:
下次启动执行的时候,将以上次时间轴单位来显示,当超出一定时间后,将波形压缩显示。如果再超过一定时间后,将滚动显示,不再压缩显示。具体时间这多少,需要自己摸索。在VarViewer窗口波形数据区,点住鼠标左键,向左划鼠标,多试试。
向右拖鼠标,出现框选。并看到波形放大显示。
原文作者:STM32中文社区网友toofree
基于STM32调试工具STM-STUDIO-STM32的使用的更多相关文章
- STM32入门系列-介绍STM32型号与功用
作为STM32初学者,一般会选择购置一块开发板,因为在开发板上有很多已经集成好的模块,如红外模块.按键模块.LED模块.DAC模块.ADC模块.can模块.485模块.以太网模块.WiFi模块.蜂鸣器 ...
- 基于IAR6或者IAR7建立STM32开发工程(通过实际测试,使用IAR6.30.4)
IAR和keil两个开发平台都是arm开发当中比较流行的平台,keil4的版本之间,可以兼容,但是版本4和版本5还是不兼容的,但是IAR的兼容性更加差,好像6.30.x之间是能够兼容的吧,没有实测过, ...
- MySQL存储过程调试工具-dbForge Studio for MySQL
工具官网地址:http://www.devart.com/dbforge/mysql/studio/ 对于某些存储过程很多且复杂的SQL的应用,在短时间内要使得所有MySQL存储过程和函数正常运行,那 ...
- stm32 堆和栈(stm32 Heap & Stack)【worldsing笔记】
关于堆和栈已经是程序员的一个月经话题,大部分有是基于os层来聊的. 那么,在赤裸裸的单片机下的堆和栈是什么样的分布呢?以下是网摘: 刚接手STM32时,你只编写一个 int main() ...
- stm32 堆和栈(stm32 Heap & Stack)
关于堆和栈已经是程序员的一个月经话题,大部分有是基于os层来聊的. 那么,在赤裸裸的单片机下的堆和栈是什么样的分布呢?以下是网摘: 刚接手STM32时,你只编写一个 int main() { whil ...
- STM32入门系列-学习STM32要掌握的内容
STM32芯片架构 STM32F103系列芯片的系统架构如下: STM32芯片基于ARM公司的Cortex-M3内核,由ST公司设计生产,内核与总线矩阵之间有I(指令).S(系统).D(数据)三条信号 ...
- STM32学习笔记(三) STM32的GPIO的深入学习
STM32的开发学习主要涉及软硬件两个部分的实现,包含众多外设和总线的理解配置.STM32的整个学习曲线并不陡峭,但入门却相当困难,因此在学习之初,多动手实验和测试相当重要,GPIO作为整个STM32 ...
- 基于华为云IoT Studio自助生成10万行代码的奥秘
华为IoT小助手们搬好板凳.备好笔记本.听了HDC.Cloud的几场华为云技术架构师的直播讲课,感觉获益匪浅却又似懂非懂,直后悔自己没有好好打下基础.为了避免再次出现这样的情况,小助手偷偷跑去找了华为 ...
- STM32入门系列-STM32时钟系统,STM32时钟树
时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行.时钟系统犹如人的心脏,一旦有问题整个系统就崩溃.我们知道STM32属于高级单片机,其内部有很多的外设,但不是 ...
随机推荐
- Linux下文件搜索、查找、查看命令
Linux下文件搜索.查找.查看命令 1.最强大的搜索命令:find 查找各种文件的命令 2.在文件资料中查找文件:locate 3.搜索命令所在的目录及别名信息:which 4.搜索命令所在的目录及 ...
- [转帖]Docker 更新版本 以及 data-root
Docker 更新版本 https://www.cnblogs.com/operationhome/archive/2019/08/11/11322150.html 园友说 docker 使用了 da ...
- js中实现输入框类似百度搜索的智能提示效果
说明:我这里显示的数据采用词典(词典在js中自定义的,看下面文字),主要显示key. 页面元素: <style type="text/css">.search { le ...
- 获取 request 中用POST方式"Content-type"是"application/x-www-form-urlencoded;charset=utf-8"发送的 json 数据
request中发送json数据用post方式发送Content-type用application/json;charset=utf-8方式发送的话,直接用springMVC的@RequestBody ...
- 散列查找的C实现
概念 散列查找,类似与查英文字典的过程.如果我们要查找"zoo"(key)对应的释义(value),我们不会从第一页开始逐页查找(顺序查找),而是直接根据大致的推算(Hash函数) ...
- 编写程序来实现实现strcat()功能
strcat(字符数组1,字符串2) 字符串2的内容复制连接在字符数组1的后面,其返回值为字符数组1的地址 /* strcat(字符数组1,字符串2) 字符串2的内容复制连接在字符数组1的后面,其返回 ...
- 怎样查看或修改网页的标题title
网页的标题一般指的是 <title>标签之间的文本节点值, 它会显示在浏览器的标签页上, 我们可以通过 document.title 来查看或修改它: document.title; // ...
- EF7 在ASP.NET5 RC1版本中数据结构合并的问题
由于EF版本和asp.net5版本不断更新导致命令出现冲突.最新命令如下: C:\ScrumBasic\ScrumBasic>dnx ef _/\__ ---==/ \\ ___ ___ |. ...
- oracle wm_concat函数用法
在Oracle中使用wm_concat(column)可以实现字段的分组合并,逗号分隔.
- instanceof解析
https://www.zhihu.com/question/21574535/answer/18998914 Java instanceof 关键字是如何实现的? 基本理解 只是在同一个类加载器加载 ...