STM32调试模式采样数据并批量转化为文本格式读取

Keil的debug模式可以可以将定义的数组保存,从而得到一定的采样数据。

参考的代码来源:

KeiL 调试时保存watchwindow的参数变量到文件_keil watch 变量_SeniorZ的博客-CSDN博客

唯一还要注意的是整数和浮点数的区分,%u还是%f根据自己的数据类型选择。我的保存设置文件形式如下:

FUNC void displayvalues(void)
 {
  int idx;
 // displayvalues()
  exec("log > Name.log");//MyValues
  for (idx = 0; idx <= 200000; idx++) 
  {
	printf ("%d %.3f\n",idx, -0.1*adc1Buf[idx]);//浮点数
    //printf ("%d %u\n",idx, adc1Buf[idx]);//整数
  }
  exec("log off");
 }

       经过以上操作,我们就得到了所需数据。但会发现文本是Ini格式,需要修改后缀为txt格式以方便用软件读取。那么就需要批量修改后缀。这里我们用python进行快速处理。建议保存的文件最好按照固定名称+数字顺序进行命名,后期也方便读取。

       仅需修改地址为Ini文本位置即可:

# -*- coding: utf-8 -*-
import os
f_path = r'地址'
def find_file(file_path, o_post, n_post, lis):
    ls = os.listdir(file_path)
    for i in ls:
        son_path = os.path.join(file_path,i)
        if os.path.isdir(son_path):
            find_file(son_path,o_post,n_post,lis)
        else:
            file_post = str(i.split('.')[-1])
            if file_post == o_post:
                lis.append(i)
                os.rename(son_path,str(son_path.split('.')[0])+'.'+n_post)
                print('找到文件{srcnam},已修改成:{dicname}'.format(srcnam=son_path,dicname=str(i.split('.')[0])+'.'+n_post))
    return lis
old_post = 'log'
new_post = 'txt'
print('已修改文件:',find_file(f_path, old_post, new_post, []))

此处是参考别人的代码啦,附上原文链接:

Python实现同一目录下所有log文件转为txt文件_log转txt python_李老狗在看FPGA的博客-CSDN博客

转化成txt文件后,可以用Matlab进行批量读取数据,这时候如果文件名称是按数字顺序命名就很舒服了:

%文本数据读取例子
for k=1:1:10
    A=load(strcat('F:\位置\A',num2str(k),'.txt'));
    data=A(:,2);
   %(data数据处理)
end

参考链接如下:

Matlab大量数据读取的代码块_守护最好的IKuN~的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
STM32是一款基于ARM Cortex-M内核的微控制器,广泛应用于各种嵌入式系统中。在某些应用中,需要读取AD(模拟-数字)采样芯片的数据。下面将简要介绍如何使用STM32读取AD采样芯片。 首先,我们需要选择一款适合的AD采样芯片,该芯片能够将模拟信号转换为数字信号。常见的AD采样芯片有MCP3208、ADS1115等。接下来,将AD采样芯片与STM32进行连接。 连接时,我们需要将AD芯片的引脚与STM32的引脚进行连接。具体连接方式可以参考芯片的数据手册。通常,我们需要将模拟信号输入引脚连接到AD芯片的模拟输入引脚,将AD芯片的数字输出引脚连接到STM32的GPIO(通用输入输出)引脚。 接下来,在STM32的软件开发环境中编写代码。首先,需要配置STM32的GPIO引脚,使其作为输入引脚。然后,通过读取GPIO引脚的状态来获取AD芯片的数字输出值。具体的代码可以通过读取GPIO输入寄存器的值来实现。 最后,我们可以通过对获取的AD芯片的数字输出值进行相应的处理,例如将其转换为电压值或者其他物理量值。处理方式可以根据具体的需求而定。 总结来说,要使用STM32读取AD采样芯片,我们需要选择适合的AD采样芯片,进行硬件连接,并在STM32的软件开发环境中编写相应的代码。通过读取GPIO输入寄存器的值,我们可以获取AD芯片的数字输出值,然后进行相应的处理。这样,我们就可以实现STM32对AD采样芯片的读取了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值