STM32使用FreeMASTER+J-LINK+.axf文件显示数据波形
STM32使用FreeMASTER+J-LINK+.axf文件显示数据波形
软件下载安装
FreeMster可以在NXP的官网直接下载,免费!当然下载前需要登录/注册账号。我现在用的是2.5版本的FreeMASTER,软件大约30M,传送门:FreeMster2.5下载(其他版本自行在官网找)。
KEIL5的安装和J-LINK的安装这里就不展开了,大家网上搜索教程自行安装即可。
cubemax配置测试程序
这里使用cubemax简单配置一个软件工程模板,芯片选择STM32F103C9T6,配置外部高速时钟HSE,使用SW模式,主频选择72MHz:
选择外部高速时钟HSE
接着进行输出配置。自定义输出文件名和路径,这里要注意的是:文件的保存路径/命名不要带有小数点,否则KEIL编译后将无法输出.axf文件,如下图,可以看到在输出文件搜索中是没有显示.axf文件
使用KEIL5作为IDE,选择合适的版本,输出单独的.c和.h文件,最后点击右上角GENERATE CODE生成代码:
选择MDK-ARM作为IDE
代码生成后,在KEIL中打开工程,可以先编译一遍程序,确保无错误无警告:
在对应的文件路径中可以看到.axf文件:
接着写一个简单的测试程序,如题图:定义一个全局变量作为计数值,在while(1)里写一个简陋的for循环让计数值从0开始每秒递增,到达10后再后归0:
uint8_t cnt;int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();while (1){for(cnt = 0; cnt < 10; cnt++){if(cnt == 10){cnt = 0;}HAL_Delay(1000);}}
}
编译程序后,接着点击魔法棒(options for target),在debug窗口de Use中选择J-LINK作为烧录程序方式,然后点击settings,在弹出的界面中把Port口选择SW模式,CLK自定义,最后在Flash Download中把Reset and Run 勾选上,使下载后芯片复位并运行;最后点击确定,完成程序烧录设置;此时可通过J-LINK把程序烧录进单片机中:
FreeMaster设置
程序下载后,接着对FreeMaster进行配置(这时候JLINK和烧录程序的板子不用拔掉,保持连接)。打开软件后,可以先把工程保存,接着点击Project,选择Options,进入工程设置:
在options的页面中可以看到FreeMaster提供RS232和插件两种方式与目标设备进行连接,因为手头上没有RS232转USB的模块,这里选择第二种插件的方式。在Plug-in Module中点击下拉按钮,可以看到插件中有JLINK这一选项,选择该项作为连接方式:
接着在Connect string中点击右侧Configure,进入该界面:
这里可以看到安装的JLINK的DLL路径(忘记是不是要手动添加的了,如果确定能使用KEIL5+JLINK烧录程序,但这里没有显示.dll文件,则手动添加),core type这里可以选择芯片的内核,如F103C8的M3的内核,但是这里没有M3的选项,我们选择默认即可:
点击OK后,可以看到Connect String中有包含JLINK的相关信息:
接着点击AMP Files,导入.axf文件:
点击View,可以查看到程序中定义的全局变量cnt:
接下来创建变量检测窗口。在主界面下方Variable Watch窗口中的空白处单击右键,在弹出的窗口中选择Create New Watched Variable,进入添加变量窗口
在添加变量窗口中进行相关的设置如变量地址、类型、长度、采样周期等,测试程序中定义的全局变量cnt是uint8_t类型,占1个byte,至于采样时间和显示方式自行设置,如下:
接着点击确定,可以看到变量cnt已经成功添加进监视窗口了:
然后在左侧的Project tree下右键单击new project,选择Create Oscilloscope,创建示波器,如上图绿色框。
进入后,可以看到有Main 和Setup两个界面,Main界面是设置示波器的显示窗口大小、坐标等内容,根据需求设置即可;进入Setup窗口,添加变量cnt,把Graph vars中cnt前面的方框勾选,最后点击确定,完成示波器设置:
输出显示
下图是完成上述设置后的界面:
点击左上角Go!按钮,如果出现下图提示则是因为前面步骤中配置core type时没有对应M3选项的原因,我们点击OK,进入里面选择M3即可,最后点击OK:
可以看到输出波形如下,可以看到波形从0到9循环递增,下方cnt也会输出当前值:
这几天在调试PID,看到正点原子刚好出了个电机的教程,本想着移植他家的上位机程序到程序里调试参数,然后突然想起了以前用过的FreeMaster,看了一下教程果然有相关功能(如果你不想移植别的调参上位机程序或者频繁download,可以试一下这个方法);这里把方法记录一下。
先修改测试程序,给它加一个限幅,即把(cnt == 10)改为(cnt >= max_lim),这里的max_lim是一个全局变量,其值设置为20,编译后更新.axf文件到FreeMaster,效果如下图:
现在我想修改max_lim的值,可以通过以下步骤实现:
右键点击主界面下方的variable watch区域,点击watch properties:
在弹出的界面按顺序执行1、2、3操作:
在弹出的界面执行以下操作:
设置完成,然后试着把max_lim的值改成50,然后按下键盘的Enter键:
可以看到max_lim变成了50(要注意的是,Freemaster中改变的变量值是修改了程序的.axf中对应的值,程序不同步修改的)。
STM32使用FreeMASTER+J-LINK+.axf文件显示数据波形相关推荐
- STM32的0.96寸OLED显示屏显示数据
目录 一.SPI 1.简介 2.工作模式 3.通讯引脚 二.用0.96OLED显示数据 1.OLED原理简介 三.OLED显示实验 (1).实验目的 (2).实验实现 1.显示学号和姓名 2.显示AH ...
- 基于STM32的0.96寸OLED显示屏显示数据和滚动显示
文章目录 一.SPI 二.OLED显示屏显示数据 2.1 代码实现 2.2 结果展示 三.0.96寸OLED滚动显示数据 3.1 滚动方式 3.2 对显示文字进行取模 3.3 代码实现 3.4 结果展 ...
- 图形化显示变量波形 代替串口你知道如何操作么?
///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我地球呺也能领取哦.最近比较闲,带做毕设,带学生参加省级或以上比赛 ...
- 基于STM32F103C8T6的0.96寸OLED显示屏显示数据
一.了解SPI(串行外设接口) SPI全称是Serial Perripheral Interface,也就是串行外围设备接口.SPI是Motorola公司推出的一种同步串行接口技术,是一种高速,全双工 ...
- .axf文件_干货!STM32晶振的更改,BIN文件的生成
STM32因为硬件设计的不同,要根据实际安装晶振修改程序参数, 一般使用的晶振是8M,如果遇到使用24M晶振的时候程序配置要怎么去修改呢? 一共有两处需要修改,如果是24M就把这个修改为24,同理8M ...
- 解决IDEA.java文件显示不正常,左下角显示J问题(项目路径导入错误!)
一般我们在导入一个项目的时候,需要重新配置好多东西!有时候我们会发现导入的项目java文件显示不正常,左下角显示J的问题,如下解决办法! 出现这种情况的原因分析: 肯定是因为粗心在导入项目的时候把存放 ...
- Android Studio ---- Cannot resolve symbol 'XXX',java文件 显示蓝色J的图标
问题: 现象1. 我在MsgReceiver.java中 使用Msg2.java , 但是报红,引用失败,无法找到.(之前是好的,不知什么原因导致) Cannot resolve symbol 'XX ...
- Keil关于.axf文件报错
项目场景: 熟悉Keil C51的同学在使用Keil MDK编译STM32系列单片机时会更容易上手. Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与 ...
- Android中使用WebChromeClient显示Openlayers加载本地GeoJson文件显示地图(跨域问题解决)
场景 Openlayers中加载GeoJson文件显示地图: Openlayers中加载GeoJson文件显示地图_BADAO_LIUMANG_QIZHI的博客-CSDN博客 上面加载显示GeoJso ...
最新文章
- linux 位置参数数组,JavaScript数组详解
- 口罩巨头挑战“量子霸权”,3个月造出的『最强量子计算机』靠谱不?
- iOS - Flutter混合开发
- java location_JAVA setlocation()方法并不能定义组件的位置,setBounds()方法无法改变组件的大小。小白一枚...
- [HNOI2009]最小圈 (二分答案+负环)
- 解析XML的4种方式及优缺点比较
- linux 打开网页 用curl_linux终端模拟浏览器访问(curl)
- 系统“烂”怎么办?请看资深专家拆分改造实践
- AndroidStudio更改默认编码(不用每次新建项目再更改编码了)
- [转载] python3.6版本生成的python脚本如何打包为可独立执行的exe程序
- Julia : 在编程中的Unicode 字符
- Express框架学习笔记-app.locals对象
- 美国服务器查询网站查询网站查询网站查询网站查询,全球DNS节点查询网
- 实测:熊猫烧香考验五大杀毒软件
- 转:查理·芒格:让打击和麻烦成为成长的契机
- 腾讯音乐2020年报:懒人听书收购完成,谢振宇、太盟投资减持
- python自动录音程序
- Hbase(一)入门
- c语言远控,远控鼠标!C语言简单编程:整舍友必备+附送实例源码!
- Java笔记14-Java高级编程部分-第八章-多线程
热门文章
- 【视频编码学习】——SAD和SATD
- 4键电子手表说明书_4键电子手表怎么调时间的方法
- python四级考试_Python统计四六级考试的词频
- 2022.09.22调研(半导体激光器之发光原理)
- 计算机辅助设计简单作品,计算机辅助设计(范文).pdf
- 7nm工艺指的是什么?
- 强化学习系列之Policy Gradient算法
- MATLAB是一个强大的数值计算软件,常用于数值分析的实现
- Tomcat6优化汇总–让R61本本也能跑上两千
- APP源码 教程 网页转APP 安卓Andriod应用开发 手机APP 移动网站