1、采用的微控制器为STM32F103RCT6,该微控制器采用Cortex-M3体系结构,它拥有的资源包括: 48KB SRAM、 256KB FLASH、 2 个基本定时器、 4 个通用定时器、 2 个高级定时器、 2个 DMA 控制器(共 12 个通道)、 3 个 SPI、 2 个 IIC、 5 个串口、 1 个 USB、 1 个 CAN、 3 个 12位 ADC、 1 个...
1、采用的微控制器为STM32F103RCT6,该微控制器采用Cortex-M3体系结构,它拥有的资源包括:48KB SRAM、256KB FLASH、2个基本定时器、4个通用定时器、2个高级定时器、2个DMA控制器(共12个通道)、3个SPI、2个IIC、5个串口、1个USB、1个CAN、3个12位ADC、1个12位DAC、1个SDIO接口及51个通用IO口分三组,该芯...
如果选择循环模式,频率太高会导致程序死在dma中断中。选择3Cycles,使adc采样达到2.4M 6、开启串口 7...
DMA_InitStructure.DMA_MemoryBaseAddr =cmar; //DMA内存基地址 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; //数据传输方向,从外设读取,发送到内存空间 DMA_InitStructure.DMA_BufferSize =cndtr; //DMA通道的DMA缓存的大小 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; //外设地址...
总结:利用stm32上的定时器Timer来触发ADC采样,利用DMA搬运采样得到的AD值,最后用DSP库里的有关FFT运算的函数进行各次谐波幅值的获取。 一、设定数据 被采信号频率:f 被采信号周期:T &...
利用STM32F407上的定时器Timer来触发ADC采样,并利用DMA搬运采样到的AD值,最后用dsp库里的有关FFT运算...
对频率变化的信号测量频率后确定时钟触发频率,即确定了采样率,用ADC双通道测量两路信号,用DMA传输至一个数组内存中,然后显示波形、计算Vpp、并对数据进行FFT,分析频谱确定波形名称(可判断正弦波,三角波,方波,脉冲波(有误差),锯齿波,等幅DTMF) 问题分析 用单片机自带的ADC对信号进行采样时,经常会碰到信号幅度太小...
将ADC采样的数据通过DMA的方式送到指定的内存中去。 2、将采样得到的数据通过循环比较得到最大值和最小是,两者相减得到信号幅值。将得到的采样数据进行FFT变换,然后在进行一系列的计算得到信号的频率。 3、通过UART1将得到的信号计算内容发送的PC,波特率可以设置。采样率的设置以及串口输出的设计通过外部中断(外部按键...
下面的代码增加了一个代码DAClength为的是与DAC的DMA=normal配合,使DAC输出几个周期波形后,停止输出,以满足某些特定电路的需求(有些电路在不连续输出波形的情况下停止高电位)。 如果只产生波形周期,可以忽略DAClength参数及以下复制周期。 /** * 生成正弦波数据点函数 * @param NPoints 点数在一个周期内 * @param...
uint8_tADC_FLAG=0;//采样完成标志位uint32_tADC_Raw_Data[1024];//接收双ADC的数据uint16_tADC_1_Value_DMA[1024];//存放ADC1的采样值,点的个数与FFT的点数相同uint16_tADC_2_Value_DMA[1024];//存放ADC2的采样值,点的个数与FFT的点数相同 ...