一、写在前面 ADC通道采集数据的两种方式: 1)ADC轮询采集数据直接放到数组中; 2)采用中断方式,ADC采集完成进入中断,中断关闭ADC采集,取数据之后再打开ADC采集。 以下按第一种方式实现: 二、ADC多通道配置 1)…
相关dma配置,这里模式选择循环,这就不需要每次调用相关函数去获取adc的值了。因为是5个通道,所以Memory选择递增。另外这里的DMA的中断是默认开启的,实际在程序上是不用的,生成工程后,得注释掉DMA中断使能,不然会一直进中断(这种现象我也只在f103和f334中见到)。 4.时钟树的配置,按照自己的板子来配置就行。 5.项...
HAL_DMA_Start_IT(&hdma_adc1, (uint32_t)&(ADC1->DR), (uint32_t)m_ADCValue, ADC_SAMPLE_PNUM * ADC_SAMPLE_CNUM); adc_common_init_structure.ADC_Mode = ADC_MODE_INDEPENDENT; adc_common_init_structure.ADC_Prescaler = ADC_PRESCALER_DIV8; adc_common_init_structure.ADC_DMAAccessMode =...
DMA_InitInstructure.DMA_PeripheralBaseAddr =(u32)(&(ADC1->DR));//配置外设的基址,取adc 数据寄存器的地址 DMA_InitInstructure.DMA_MemoryBaseAddr = (u32)ADC_convered;//把DMA的数据存入数组 DMA_InitInstructure.DMA_DIR = DMA_DIR_PeripheralSRC;//外设到DMA DMA_InitInstructure.DMA_BufferSize = 2...
ADC多通道采集(DMA模式) ADC多通道采集(阻塞模式) 1、时钟源配置 2、配置RCC时钟(选择第三个选项 Crystal/Ceramic Resonator 晶体/陶瓷谐振器 ) 3、配置一个LED灯,在程序编写中让它闪烁代表程序没有死机。 4、设置调试模式,我们选择SW 5、设置串口,因为我们的程序采集到了adc的数值之后会发送到串口调试助手上,...
从“STM32CubeMX教程12 DMA 直接内存读取”实验中可知ADC1的DMA通道有DMA2_Stream0 CH0 和 DMA2_Stream4 CH0 两个通道 ADC的DMA请求模式一般选择循环模式,在多通道ADC采集时,配合使能扫描转化模式,这样就可以连续转化多通道而不停止 由于ADC采集后的数据一般需要存储在内存中,因此在选择地址递增时,ADC外设地址不...
1.配置ADC1时钟,通道个数,通道采集顺序,通道采样周期,无外部触发,配置DMA。 2.配置ADC2时钟,通道个数,通道采集顺序,通道采样周期,无外部触发。 注: 1.ADC2不需要配置DMA。 2.这里ADC2的Rank配置中最后的2个通道都配置为通道1的原因,查看同步规则模式图示。
相关dma配置,这里模式选择循环,这就不需要每次调用相关函数去获取adc的值了。因为是5个通道,所以Memory选择递增。另外这里的DMA的中断是默认开启的,实际在程序上是不用的,生成工程后,得注释掉DMA中断使能,不然会一直进中断(这种现象我也只在f103和f334中见到)。
先上结果图,DMA方式多路采集ADC数据并打印Count值和电压: 1、选择ADC1/ADC2的channel: 进入正文:打开CubeMX工程,选择好芯片时钟,然后开始配置ADC & DMA: 根据具体需要,这里举例选择ADC1的IN6 - IN9 2、配置ADC Setting参数: 在parameter settings中,主要配置ADC多路采集参数: Mode 模式:独立采集 Scan ...
3.ADC的DMA多通道采集 在上面工程中继续添加两路通道,并配置DMA循环模式接收,数据宽度一个字节 配置三路通道 scan conversion mode是使能扫描模式 continuous conversion mode是设置连续转换 Number of conversion设置为 3 Rank下面设置通道号 Sampling time采样时间 ...