
一个项目需求:使用STM32采集多路AD信号。 一般采集多路信号需要使用DMA方式,步骤如下: 1.使能相应ADC通道,这里使用ADC1的4个通道,分别是ADC123_IN0 ~ ADC123_IN3, 注:ADC123_IN0 表示ADC1, 2, 3 都可以使用该通道。 2.配置ADC, 将ADC设为多通道循环扫描模式,设置各通道扫描顺序(人为设定) 3.配置DMA通道 关键点在DMA的配置,ADC的采样值放在相应的数据寄存器中,通过DMA通道将该寄存器的值传输到内存中的某处(定义一个数组),内存地址自增,外设地址固定。则数组中的值就是各通道的采集数据。 代码如下: adc.c ![]() ![]() ![]() ![]() main.c ![]() ———————————————— 版权声明:高原@ |
经验分享 | STM32双定时器+ADC+DMA实战案例
经验分享 | STM32U5系列TIMER+DMA+DAC应用演示
经验分享 | 基于STM32H7 UART 空闲事件及DMA传输示例
经验分享 | 关于STM32 DMA传输的两个问题释疑
经验分享 | STM32G4 UART+TIMER+DMA应用示例
经验分享 | STM32 TIMER+DMA输出PWM异常二案例
经验分享 | STM32H7 EXTI + SPI +DMA 双缓冲应用演示
经验分享 | STM32H563 UART+DMA 2D功能演示
经验分享 | 基于STM32H563 USART演示DMA链表功能
经验分享 | 基于STM32H563演示UART+DMA功能