登录 注册
当前位置:主页 > 资源下载 > 14 > 使用STM32F4进行AD采集并通过DMA方式实现FFT计算

使用STM32F4进行AD采集并通过DMA方式实现FFT计算

  • 更新:2024-08-24 19:46:50
  • 大小:45.05MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:C - 后端
  • 格式:ZIP

资源介绍

调用了复位校准函数ADC_ResetCalibration()以及开始校准函数ADC_StartCalibration(),必须检查标志位等待校准完成,确保完成后才开始ADC转换.(建议是每次上电后都校准一次咯) ADC_SoftwareStartConvCmd(ADC1, ENABLE); 配置ADC1的模式为软件触发方式. 调用这个函数之后,ADC就开始进行转换了,每次转换完成后,由DMA控制器把转换从ADC数据寄存器(ADC_DR)中转移到变量ADC_ConvertedValue中,当DMA传输完成后,在main函数中使用 ADC_ConvertedValue的内容就是ADC的转换值了. 计算电压值: 在main函数中,ADC_ConvertedValueLoca是一个float类型变量,它保存了有转换值计算出来的电压值,计算的公式是ADC通用的 实际电压 = ADC转换值*LSB LSB为Vref+接的参考电压/ADC的精度( LSB =3.3/2的12次方) PS: 这里面ADC_ConvertedValue是用volatile修饰的,用 volatile 声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。因为 ADC_ConvertedValue 这个变量值随时都是会被 DMA 控制器改变的,所以用 volatile 来修饰它,确保每次读取到的都是实时的 ADC 转