keil利用debug和数组获取稳定调试数据

title: keil的debug小技巧

date: 2020-07-21 19:28:12

tags:

categories: STM32学习记录


背景

调robomaster的6020电机时,需要把pid的数据导出来进行matlab仿真,那么问题就来了,该怎么导出呢,我当时立刻想到的方法是用串口打印数据,利用sprintf把pid的输入输出转成字符串,然后HAL_UART_Transmit()阻塞发送,在定时器中进行pid的计算以及数据的发送,但是效果却不尽人意。

因为电机是通过can总线协议,获取的是电压信息,-30000~30000范围,返回的数据是转速,角度,转矩和温度,调速度环,要看从精致到稳定的输入输出曲线,所以需要打印速度的pid三个信息,再来一个当前速度更加直观。但是,经过调试发现,频率过低,不能很好的与仿真的拟合曲线进行比较,而频率过高,串口发送会出现断层和乱码的情况。这时我就想到一个办法,那就是把数据保存在数组里,然后在线仿真,利用MDK的debug的功能,实现对数组内存的方便的访问。

这个方法不在于有多方便操作,而在于能够非常高频率的获取一些数据,而不会有通信问题而失去一些数据,或者因为系统外干扰而出现大量异常数据。

操作流程

废话不多说,开始走流程。首先保证你的keil版本至少是5以上,低版本的keil操作我不太清楚。
为了防止爆栈,把用于存数据的大数组放在函数外:


                
  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值