请问STM32F103VCT6 ADC1与ADC2同步规则转换如何配置?

2019-07-14 13:34发布

             最近做一个项目,需要用STM32的ADC1与ADC2通过定时器控制采样,并DMA读取。但是不知道该如何配置,还请高手们给予帮助.......................
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
maruidiyi
1楼-- · 2019-07-14 17:46
 精彩回答 2  元偷偷看……
小华同学
2楼-- · 2019-07-14 20:03
推荐用DMA中断+ADC
龚浩洋1
3楼-- · 2019-07-15 01:27
回复第 2 楼 于2014-03-31 17:13:18发表:
为什么用定时器来读取DMA而不用DMA中断呢?
我是对两路交流信号同时进行采样的,所以需要用定时器来控制 ADC1与ADC2 的同步采样,从而保证在一个周期内能够采样到128个点的数据。最后再用DMA将ADC中的数据取出来。现在就是不知道该如何正确配置 
 
龚浩洋1
4楼-- · 2019-07-15 01:57
回复第 3 楼 于2014-03-31 20:54:04发表:
用了两个ADC模块,还是用DMA方式比较好,我目前也在用这个芯片,参考3.50固件工程库里面的ADC例程+DMA例程吧,那个很容易实现的
 
 
 
 
 
恩,那个例程是软件触发ADC转换。  我现在想用ADC的外部触发方式 用定时器来触发转换
 
guanrui1202
5楼-- · 2019-07-15 05:57
 /* ADC1 configuration ------------------------------------------------------*/
  ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
  ADC_InitStructure.ADC_ScanConvMode = DISABLE;
  ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
  ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;
  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  ADC_InitStructure.ADC_NbrOfChannel = 1;
  ADC_Init(ADC1, &ADC_InitStructure);
 
/* Enable ADC1 external trigger */ 
  ADC_ExternalTrigConvCmd(ADC1, ENABLE);
 
 /* TIM1 configuration ------------------------------------------------------*/ 
  /* Time Base configuration */
  TIM_TimeBaseStructInit(&TIM_TimeBaseStructure); 
  TIM_TimeBaseStructure.TIM_Period = 0xFF;          
  TIM_TimeBaseStructure.TIM_Prescaler = 0x4;       
  TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;    
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  
  TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
  /* TIM1 channel1 configuration in PWM mode */
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; 
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;                
  TIM_OCInitStructure.TIM_Pulse = 0x7F; 
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;         
  TIM_OC1Init(TIM1, &TIM_OCInitStructure);
 
官方驱动库中示例工程ADC下面的TIMTrigger_AutoJnjection就是用定时器出发ADC转换的.
另外可参考网上的文章stm32定时器触发ADC参考
Sabrina_cc
6楼-- · 2019-07-15 09:11
 精彩回答 2  元偷偷看……

一周热门 更多>