如何解决如何在STM32L072CZ MCU ADC和DAC的Atollic Truestudio中使用卷积实现FIR滤波器?
使用从示波器生成的连续输入信号 包含的文件如下
#include "main.h"
#include "adc.h"
#include "dac.h"
#include "tim.h"
#include "gpio.h"
#include "stdlib.h"
变量如下
uint32_t x;
//uint32_t y[N]={};
uint32_t y = 0;
float h[N] = {-0.03942344379461026,-0.027160383338957633,0.09191252017004274,0.307548405687107,0.4851111537960244,-0.03942344379461026};
主区块
void SystemClock_Config(void);
int main(void)
{
int i=0;
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_ADC_Init();
MX_DAC_Init();
MX_TIM6_Init();
HAL_TIM_Base_Start(&htim6);
HAL_ADC_Start(&hadc);
HAL_DAC_Start(&hdac,DAC_CHANNEL_1);
while (1)
{
HAL_ADC_PollForConversion(&hadc,100);
x = HAL_ADC_GetValue(&hadc);
y = y + x * h[abs(j-i)];
i++;
if (i==N)
{
HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1,DAC_ALIGN_12B_R,(int )y);
i=0;
j++;
if(j==N)
{
j=0;
}
}
}
}
通过ADC的输入读取正确进行,但是卷积后无法获得预期的输出。请帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。