基于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属于高级单片机,其内部有很多的外设,但不是 ...
随机推荐
- 要求设计 LazyMan 类,实现以下功能
LazyMan('Tony'); // Hi I am Tony LazyMan('Tony').sleep(10).eat('lunch'); // Hi I am Tony // 等待了10秒.. ...
- linux报错Loading mirror speeds from cached hostfile解决方法
首先本人当时也是遇到这个问题,首先配置了虚拟机的 yum,移步这篇博客https://www.cnblogs.com/xuzhaoyang/p/11239096.html 然后在进行了如下操作 首先还 ...
- SQL SERVER 字符串函数 STRING_SPLIT()
定义: STRING_SPLIT()函数根据指定的分隔符将字符串拆分为子字符串行. ※STRING_SPLIT 要求兼容性级别至少为 130. (即SSMS 2016及以上版本) ※级别低于 130 ...
- leetCode算法——1TwoSum(两数之和)
描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中 ...
- 【AtCoder】AGC006
AGC006 A - Prefix and Suffix -- #include <bits/stdc++.h> #define fi first #define se second #d ...
- docker部署redis
镜像获取 docker pull redis:4.0 ##当前最新版本 docker images 启动 docker run --name redis-huiyuan -p : -v $PWD/da ...
- 5-MySQL DBA笔记-开发技巧
第5章 开发技巧 本章将介绍一些和数据库相关的开发技巧.由于开发领域很广,这里只选取部分比较常见的小技巧.5.1 存储树形数据 有时我们需要保存一些树形的数据结构,比如组织架构.话题讨论.知识管理.商 ...
- dev linechart动态加载数据(像股票一样的波动)
图片地址:https://blog.csdn.net/qq_33459369/article/details/80060196:(盗图) 接下来是封装的代码 #region 动态折线图 public ...
- 在realm中动态查询用户的权限&角色
@Controller @Scope("prototype") @Namespace("/") @ParentPackage("struts-defa ...
- POJ2773Happy2006题解--数论好题
题目链接 https://cn.vjudge.net/problem/POJ-2773 题意: 求第\(k\)个与\(m\)互质的数 分析 因为\(gcd(a,b)=gcd(a+t * b,b)\) ...