STM32CubeIDE调试时画曲线方法

日期:2021062923小时 by gogoft

目的

TI的ccs内有画曲线的工具,做调试时相当方便。

但是stm32使用STM32CubeIDE时发现没这个工具,网上查了下,都是导出后处理文件然后在matlab内画曲线,本人比较低端matlab画曲线不熟,所以改为使用excel画曲线。

下面是方法的分享

方法

过程分2步,导出数据和excel内显示

1、数据导出为txt

程序内建立需要显示的数组,

注意导出时只能使用16进制导出,我使用的是int16_t格式,其他格式需要修改处理过程

代码如下,其中dd[512]就是我准备查看曲线的数组:

        {

               

//          int16_t dd[512];   

//          int ddindex;

           

            ddindex++;

            ddindex &= 511;

            dd[ddindex] = (int16_t)(ddindex-256);

        }

然后按下图进行导出工作,我导出到桌面的pp.txt

导出后的数据如下,是按字节排列的16进制数据,宽度固定32.

2、Excel内显示曲线

下面是excel画曲线的方法

数据显示的公式是(建议下载excel文件https://18915200822.com/sms/%E5%88%86%E6%9E%90%E6%95%B0%E6%8D%AE.xlsx):

=IF(HEX2DEC(CONCATENATE(INDEX('导入文件(文本)'!$1:$63,(INT((ROW()-5)/($B$1/2))+1),MOD((ROW()-5),$B$1/2)*2+2),INDEX('导入文件(文本)'!$1:$63,(INT((ROW()-5)/($B$1/2))+1),MOD((ROW()-5),$B$1/2)*2+1)))>32767,HEX2DEC(CONCATENATE(INDEX('导入文件(文本)'!$1:$63,(INT((ROW()-5)/($B$1/2))+1),MOD((ROW()-5),$B$1/2)*2+2),INDEX('导入文件(文本)'!$1:$63,(INT((ROW()-5)/($B$1/2))+1),MOD((ROW()-5),$B$1/2)*2+1)))-65535,HEX2DEC(CONCATENATE(INDEX('导入文件(文本)'!$1:$63,(INT((ROW()-5)/($B$1/2))+1),MOD((ROW()-5),$B$1/2)*2+2),INDEX('导入文件(文本)'!$1:$63,(INT((ROW()-5)/($B$1/2))+1),MOD((ROW()-5),$B$1/2)*2+1))))

其他

1、MDK可以使用命令方式导出数据,网上有指令,但我没实践

2、如果需要多条曲线对比,多次读出数组,然后在excel内一起画图

3、如果将串口打印做好了,可以直接串口输出为csv文件,然后直接显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值