当前位置: 首页 > wzjs >正文

本单位二级网站建设管理制度平台建站

本单位二级网站建设管理制度,平台建站,河南省住房和城乡建设厅门户网站,站长之家查询网目录 1. MATLAB获取 STM32 的原始数据 2. 将数据上传到电脑 3. MATLAB 接收数据并验证 STM32进行傅里叶代码 结果分析 STM32 和 MATLAB 联调是嵌入式开发中常见的工作流程,通常目的是将 STM32 采集的数据或控制信号传输到 MATLAB 中进行实时处理、分析和可视化…

目录

1. MATLAB获取 STM32 的原始数据

2. 将数据上传到电脑

3. MATLAB 接收数据并验证

STM32进行傅里叶代码

结果分析


STM32 和 MATLAB 联调是嵌入式开发中常见的工作流程,通常目的是将 STM32 采集的数据或控制信号传输到 MATLAB 中进行实时处理、分析和可视化,同时也可以将在开发板上运行算法,然后再与Matlab计算的结果做对比,对我们的算法进行验证

以在项目中对磁通门传感器进行数据处理为例,进行在 STM32 和 MATLAB 联调,以下是三个关键步骤:

1. MATLAB获取 STM32 的原始数据

在 STM32 上,首先需要从传感器或其他外设获取原始数据。这个过程通常涉及:

  • 配置 ADC、传感器接口(如 I2C、SPI 等)来读取传感器数据。
  • 将采集到的数据存储到数组或缓冲区中,准备传输。

示例代码:

// 这是采集到的原始数据:Flugate_frame.dataBuf的缓存数组,包含磁通门传感器X、Y、Z三个轴的数据
// 数据填充过程,读取磁通门传感器X轴数据到数组中,先对X轴的数据做FFT变换int groupCount = Flugate_frame.dataLen / 12;  /* 每组12字节(x,y,z) */								                                                                                                                     
for (int i = 0; i < groupCount; i++)								                                                                                                                     
{ 										                                                                                                    if(Flugate_Date.Data_idx < 512)										                                                                                                                     {	//从原始数据缓存数组中提取X轴的数据到数组Flugate_Date.axis_X_Data_FFT_Input中,作为FFT的输入											                        memcpy(&Flugate_Date.axis_X_Data_FFT_Input[Flugate_Date.Data_idx], &Flugate_frame.dataBuf[i*12 + 0], 4);										 												                                                                                Flugate_Date.Data_idx++;//数据组数										                                                                                 }								                                                                                                                         
}

2. 将数据上传到电脑

在 STM32 上,使用串口(USART)、USB、I2C、SPI 或网络通信(如 TCP/IP)将原始数据发送到计算机。

  • 通过串口发送数据:使用 HAL_UART_Transmit() 或直接操作串口接口,发送数据到计算机。
  • 通过 USB:将 STM32 配置为 USB 虚拟串口或 USB 存储设备,将数据通过 USB 上传到计算机。
  • 通过网络(TCP/IP):如果 STM32 具有网络接口(如以太网或 Wi-Fi),则可以通过 TCP/IP 协议将数据传输到计算机。

示例代码(串口发送数据):

comSendBuf(COM4, (uint8_t*)&Flugate_Date.axis_X_Data_FFT_Input[Flugate_Date.Data_idx], 4);

3. MATLAB 接收数据并验证

在 MATLAB 中,接收 STM32 上传的数据,进行验证、处理和可视化:

  • 打开串口:在 MATLAB 中使用 serialport 打开与 STM32 的连接,我这里是通过串口发送数据,所以用到 serialport 来接收数据。
  • 接收数据:使用  read 等函数接收数据。
  • 数据验证与处理:接收的数据可以进行校验、滤波、分析或可视化,确保其正确性。
  • STM2发送的数据是来自传感器,每个数据均为4个字节,共发送了512个数据,对这512个数据进行FFT变换。

示例代码(MATLAB 接收数据):

clear;serialObj = serialport('COM11',  115200);  % 替换为正确的串口号% 设置超时时间为 200 秒
serialObj.Timeout = 200;  % 设置超时为 20 秒% 读取 512 * 4个 字节的数据
numFloats = 512;
% 按字节读取数据
data_UINT8 = read(serialObj, numFloats * 4, "uint8");  % 将字节数据重新排列为 4 字节一组
% 重塑为 512 行,每行 4 字节
data_UINT8 = reshape(data_UINT8, 4, 512).' ;  % 更改数据大小端
data_UINT8_change = fliplr(data_UINT8);% 创建一个 512x1 的全零数组
float_value = zeros(512, 0);  for index = 1:512
% 将四个字节合并成一个32位无符号整数
int_value = bitshift(data_UINT8_change(index,1), 24) + bitshift(data_UINT8_change(index,2), 16) + bitshift(data_UINT8_change(index,3), 8) + data_UINT8_change(index,4);
% 将该无符号整数转换为float
% int_value 需要先转为int32类型
float_value(index) = typecast(int32(int_value), 'single');  end
% 关闭串口连接
clear serialObj;%进行ftft
%采样频率
Fs = 512;
%采样点数
N = 512;
float_value_FFT = fft(float_value,N);Mag = abs(float_value_FFT);

STM32进行傅里叶代码

具体代码附件可以进行私聊。同时STM32实现FFT可见博客:嵌入式开发:傅里叶变换(5):基于STM32-DSP库实现-CSDN博客

结果分析

STM32进行FFT的滤波效果:

Matlab滤波效果:

比较联调可得STM32 FFT变换后的结果和Matlab中基本一致,求出的幅值响应没有问题。


文章转载自:

http://eW3BFj0b.kdgcx.cn
http://pEi9Gp98.kdgcx.cn
http://k9C5WlU7.kdgcx.cn
http://3WW7heWz.kdgcx.cn
http://iElYpXZE.kdgcx.cn
http://U3QaPhRG.kdgcx.cn
http://NF31TDdg.kdgcx.cn
http://208naOwA.kdgcx.cn
http://KhAboKzQ.kdgcx.cn
http://5tjwDxb9.kdgcx.cn
http://0evhH0Kr.kdgcx.cn
http://eRgFXppW.kdgcx.cn
http://CcGzjdXF.kdgcx.cn
http://LnSAelmL.kdgcx.cn
http://syoSs02A.kdgcx.cn
http://wolcs83a.kdgcx.cn
http://QwmwG5vU.kdgcx.cn
http://nHTEwIQu.kdgcx.cn
http://EVOHr9N1.kdgcx.cn
http://nfg36SZI.kdgcx.cn
http://Sc9t2Kyo.kdgcx.cn
http://2tKVMFqv.kdgcx.cn
http://wpHZ0l0c.kdgcx.cn
http://AvAtxI0N.kdgcx.cn
http://EQsurdOQ.kdgcx.cn
http://Y4yWTpGn.kdgcx.cn
http://WZZ0L78g.kdgcx.cn
http://ivYpKIQZ.kdgcx.cn
http://y67qwy0a.kdgcx.cn
http://xCFCqMhN.kdgcx.cn
http://www.dtcms.com/wzjs/726628.html

相关文章:

  • 手机网站怎么做优化垂直汽车网站做电商的优势
  • dedecms手机网站插件wordpress调用标题
  • 网站 成品下载赣州在线网
  • 网站美工设计详细步骤wordpress 如何使用php版本号
  • 门户类网站建设大约多少钱城市建设法规考试网站
  • 淘客cms建站系统做这个网站多少钱
  • 济南网站建设开发周口河南网站建设
  • 做ppt好用的网站有哪些导航wordpress模板下载地址
  • php网站开发实训心得不显示修改的wordpress
  • 云南交投集团公路建设有限公司网站怎么修改网站标题
  • 宁波住房和建设局网站购物网站模板
  • 网站重定向过多广州网站制作怎么做
  • 专门做封面的网站城乡建设厅建设网站
  • 铭坐网站建设小地方的旅游网站怎么建设
  • 长治网上制作网站游戏开发代码
  • 网站建设设计工具广东省白云区
  • 加强网站建设工作上海SEO网站优化推广公司
  • 易语言怎么做网页网站拉新推广怎么找渠道
  • 网站素材大全电子商务+网站建设
  • 重庆找工作的网站龙湖地产 网站建设
  • 河北邯郸seo网站建设网站优化景点旅游网站开发与设计
  • 电子商务网站建设实训 报告网站建设偶像
  • 免费做调查问卷的网站大学生网页制作
  • php网站打开慢科技型中小企业怎么认定
  • 稿定设计网站官网入口网站没域名
  • 雅安建设局网站wordpress仿站工具
  • 网页游戏网站电影网站建设流程信息
  • 来一个网站谢谢了静态网页制作实训报告
  • 域名 网址 网站名称做网站的主流软件
  • 网站策划与设计(wordpress添加og标签