KeilAssistant - 示波器

橙三吉。 提交于 2020-03-08 18:34:13

         最近使用STM32开发一个测量系统,想将ADC采集的数据绘制波形来分析波形及其信噪比,无赖串口的传输速度太低了,USB接口硬件上又没有引出。无意中发现KEIL的UVSOCK接口居然对外开放了全部服务,这也就意味着可以在keil调试过程中通过UVSOCK来访问单片机内部的数据,为了调试方便索性就开发了KeilAssistant工具,用于调试过程中方便的查看单片机内部的数据,顺便集成了FFT和简单的谱线校正算法,即便是非同步采样也能比较准确的分析出信号的基波和谐波的频率、幅度和相位。

         KeilAssistant使用python + QT 开发,pyinstaller 打包,打包环境是win64 环境,因此该软件只能在win64下工作,而且由于pyinstaller直接在Anaconda下打包导致最后输出文件过大压缩后都接近400MB,等我有时间了在去优化一下打包环境以减小最终发布版本的体积。

首先需要打开Keil的UVSOCK功能,Edit->Configuration->Other,勾选Enable, Port默认即可,重启Keil。

 KeilAssistant(链接:https://pan.baidu.com/s/1dIOzeeld3eKypHPX8QHH9g 提取码:1zjy)下载后不需要安装,直接解压缩打开KeilAssistant.exe即可打开如下图,

  • IP默认本机即可;Port若没有修改默认4823即可;
  • 变量就是需要查看的数组名字,也可以是值指针,值得注意的是只有处于当前生命周期的变量才可以访问,即如果你查看的是全局变量,那么你随时可以访问,如果是局部变量,那么你必须要设置合适断点使得该变量目前正处于当前生命周期,然后才可以被成功访问。图片中DATA的C语言定义是 float DATA[2048];float在STM32里面占4个字节,因此读取DATA数组全部数据需要从DATA地址开始读取8192字节。
  • 变量类型,字节序视情况设置;
  • 采样频率指DATA数组数据获得时的采样频率,该值不影响数据波形的读取与可视化,但是会影响FFT频率轴的数值。
  • 自动读取为0时表示单次读取,大于0表示以此为周期循环读取数据。

设置好后便可以按下+按钮添加一个需要读取的变量,可以添加多个需要读取的变量,鼠标右击可以删除不想读取的变量。

一切设置完毕后即可点击启动按钮开始读取变量数据,并实时的绘制其波形和FFT谱,右下侧是经过校正后的谐波分析表。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!