• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32如何实现ADC定时采集+DMA传输

宫梓萱 2019-04-24 浏览量:959
每间隔1min连续采集10个点DMA放到数组,貌似ADC有定时器触发采集。有没有例程啊。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这么低的采集数据用软件触发方式非常简单,用DMA+定时相当于把简单问题复杂画了。

    如果非要用定时器触发的话,要单独开一个定时器,假如使用定时器通道3触发的,ADC的控制寄存器这样配置

     ADC_CTL1 =     (1UL << 12) |                    //inserted T0-CH3-trigger
         ADC_CTL1_ETSRC |                        //regular software-trigger
         ADC_CTL1_ETEIC ;                        //inserted trigger enable
    定时器至少要配置一下寄存器成比较模式:

    //配置通道1为PWM输出,使能通道1影子寄存器
        TIM0->CCMR1 = 0x6868;
        TIM0->CCMR2 = 0x6868;

        //预分频系数 4
        TIM0->PSC = 23;
        //计数器
        TIM0->CNT = 0;
        //周期装载值
        TIM0->ARR = PWM_PERIOD;
        TIM0->CCR1 = PWM_PERIOD/2;
        //清除更新中断标志
        TIM0->SR = 0;
        //更新事件产生中断
        TIM0->DIER = TIM_DIER_CC3IE  ;


    • 发布于 2019-04-24
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:1
  • 使用两个定时器,一个定时器是1min,一个定时器是10个采样间隔的时间,定时器打开另一个定时器进行10点采样,

    采样使用DMA方式,采样完成后,进DMA中断进行处理

    • 发布于2019-04-24
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32如何实现ADC定时采集+DMA传输