资源简介
PA4输入进行电流检测
代码片段和文件信息
#include “sys.h“
#include “delay.h“
#include “usart.h“
#include “led.h“
#include “key.h“
#include “lcd.h“
#include “timer.h“
#include “math.h“
#include “arm_math.h“
#include “adc.h“
#include “string.h“
#include “adc_dma.h“
#include “stdio.h“
#include “exti.h“
//ALIENTEK 探索者STM32F407开发板 实验47_2
//DSP FFT测试实验 -库函数版本
//技术支持:www.openedv.com
//淘宝店铺:http://eboard.taobao.com
//广州市星翼电子科技有限公司
//作者:正点原子 @ALIENTEK
//ADC采样定义
extern u16 adc_buf[4096];
extern u16 flag;
float adc_bufmoni[4096]; //用于保存转换计算后的电压值
float adc_bufmoni1[4096]; //用于保存转换计算后的电压值
struct paixu shuju[4096];
//FFT定义
#define FFT_LENGTH 4096 //FFT长度,默认是1024点FFT
float fft_inputbuf[FFT_LENGTH*2]; //FFT输入数组
float fft_outputbuf[FFT_LENGTH]; //FFT输出数组
float max;
float min;
float sub;
u8 timeout;//定时器溢出次数
u8 DISP[20];
int main(void)
{
arm_cfft_radix4_instance_f32 scfft;
u8 t=0;
u8 buf[50];
u16 i;
// int j;
float time;
float H_1;
float H_i;
// float maxmin[5];
// float aver;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168); //初始化延时函数
uart_init(115200); //初始化串口波特率为115200
LED_Init(); //初始化LED
LCD_Init(); //初始化LCD接口
Rheostat_Init();//ADCDMA
ADCInit_Timer(); //ADCTIMER
TIM2_Int_Init(6553584-1); //1Mhz计数频率最大计时65ms左右超出
EXTIX_Init();
POINT_COLOR=RED;
LCD_ShowString(150151503024“FFT Analysis“);
LCD_ShowString(0402001616“_______________________________________________________________________________________________________________“);
POINT_COLOR=BLACK;//设置字体为蓝色
LCD_ShowString(10802001624“Hrmc“);
LCD_ShowString(100802001624“Frequecy“);
LCD_ShowString(310802001624“Amplitude“); //先在固定位置显示小数点
//LCD_ShowString(350151007024“sinsinsi“);
while(1)
{
//将ADC输入数组
for(i=0;i<4096;i++)
{
adc_bufmoni[i] = (float)adc_buf[i]/4096*(float)3.3;
adc_bufmoni1[i] = (float)adc_buf[i]/4096*(float)3.3;
}
delay_ms(150);
//FFT运算主程序
POINT_COLOR=RED;
LCD_ShowString(107702001624“FFT runtime:“);//显示FFT执行时间
POINT_COLOR=BLUE; //设置字体为蓝色
arm_cfft_radix4_init_f32(&scfftFFT_LENGTH01);//初始化scfft结构体,设定FFT相关参
for(i=0;i {
fft_inputbuf[2*i]=adc_bufmoni[i];
fft_inputbuf[2*i+1]=0;//虚部全部为0
}
TIM_SetCounter(TIM20);//重设TIM3定时器的计数器值
timeout=0;
arm_cfft_radix4_f32(&scfftfft_inputbuf); //FFT计算(基4)
time=TIM_GetCounter(TIM2)+(u32)timeout*65536; //计算所用时间
sprintf((char*)buf“%0.3fms\r\n“time/1000);
LCD_ShowString(100+12*8770808024buf); //显示运行时间
arm_cmplx_mag_f32(fft_inputbuffft_outputbufFFT_LENGTH); //把运算结果复数求模得幅值
//FFT运算主程序结束
//存入结构体
for(i=0;i<2048;i++)
{
shuju[i].num=i;
shuju[i].am=fft_outputbuf[i];
相关资源
- STM32红外检测有人开始录音,并播放录
- 智能灯(无极调光-配合人体检测)
- 基于STM32的音频信号采样与FFT分析
- 基于STM32F103C8T6主控板使用BH1750检测光
- dll依赖文件检测工具
- 高效FFT的C/C++代码实现包括基2的DIF和
- FFT(快速傅里叶变换)C++源程序
- FFT算法c语言代码
- 基于机器视觉可移动裂纹检测机器人
- 圆检测 用霍夫变换算法实现
- 过X3心跳检测源码
- SIFT检测特征点及特征点描述
- MFC基于对话框的气体浓度检测系统
- 信号FFT变换及绘图
- YCbCr、混合高斯以及YCbCg肤色检测模型
- 利用FFT计算频谱图
- soble 算子的 边缘检测 VisualC++
- FFT的C语言实现
- 网络入侵检测系统C++
- 目标检测 机器学习方法 静态场景 测
- 基于MFC的界面设计,包括灰度化、边
- VS平台 图像边缘检测
- C#/C++麦克风插拔检测
- FFTW3.0快速傅立叶变换库
- 利用c语言实现FFT运算
- OPENCV人脸检测加角点检测并输出坐标
- 圆检测和方形检测图像处理
- 交通标识牌检测c++代码
- C++检测托盘图标和枚举进程2免费
- opencv prewitt边缘检测
评论
共有 条评论