你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F103VCT6 ADC1与ADC2同步规则转换

[复制链接]
cmz871627 提问时间:2014-3-28 19:08 /
             最近做一个项目,需要用STM32的ADC1与ADC2通过定时器控制采样,并DMA读取。但是不知道该如何配置,还请高手们给予帮助.......................
收藏 评论8 发布时间:2014-3-28 19:08

举报

8个回答
废鱼 回答时间:2014-3-31 17:13:18

RE:STM32F103VCT6 ADC1与ADC2同步规则转换

为什么用定时器来读取DMA而不用DMA中断呢?
fengye5340 回答时间:2014-3-31 20:54:04

RE:STM32F103VCT6 ADC1与ADC2同步规则转换

用了两个ADC模块,还是用DMA方式比较好,我目前也在用这个芯片,参考3.50固件工程库里面的ADC例程+DMA例程吧,那个很容易实现的
灰小子-1888763 回答时间:2014-3-31 22:47:10

RE:STM32F103VCT6 ADC1与ADC2同步规则转换

推荐用DMA中断+ADC
cmz871627 回答时间:2014-4-1 08:33:01

回复:STM32F103VCT6 ADC1与ADC2同步规则转换

回复第 2 楼 于2014-03-31 17:13:18发表:
为什么用定时器来读取DMA而不用DMA中断呢?
我是对两路交流信号同时进行采样的,所以需要用定时器来控制 ADC1与ADC2 的同步采样,从而保证在一个周期内能够采样到128个点的数据。最后再用DMA将ADC中的数据取出来。现在就是不知道该如何正确配置 
 
cmz871627 回答时间:2014-4-1 08:36:47

回复:STM32F103VCT6 ADC1与ADC2同步规则转换

回复第 3 楼 于2014-03-31 20:54:04发表:
用了两个ADC模块,还是用DMA方式比较好,我目前也在用这个芯片,参考3.50固件工程库里面的ADC例程+DMA例程吧,那个很容易实现的
 
 
 
 
 
恩,那个例程是软件触发ADC转换。  我现在想用ADC的外部触发方式 用定时器来触发转换
 
pythonworld 回答时间:2014-4-2 20:33:44

回复:STM32F103VCT6 ADC1与ADC2同步规则转换

 /* 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参考
有缘于你 回答时间:2014-4-3 08:00:19

RE:STM32F103VCT6 ADC1与ADC2同步规则转换

楼上正解,绝大部分的功能例程里都有
feiante-155820 回答时间:2014-4-12 22:22:31

RE:STM32F103VCT6 ADC1与ADC2同步规则转换

那就把例程里的DMA和定时器触发两个合起来用吧

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版