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

STM32F3 DISCONVERY DMA只能单次转化,不能连续转换的原因

[复制链接]
lylyhs 提问时间:2013-7-31 22:48 /
坑爹的官方例子代码,坑爹的驱动
整了一下午,终于发现问题:
/*ADC初始化时,将ADC_CommonInitStructure.ADC_DMAMode = ADC_DMAMode_Circular;但时钟只转换了一次*/
 ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;                                                                   
  ADC_CommonInitStructure.ADC_Clock = ADC_Clock_AsynClkMode;                   
  ADC_CommonInitStructure.ADC_DMAAccessMode =  ADC_DMAAccessMode_1;//ADC_DMAAccessMode_Disabled;            
  ADC_CommonInitStructure.ADC_DMAMode = ADC_DMAMode_Circular;//ADC_DMAMode_OneShot;                  
  ADC_CommonInitStructure.ADC_TwoSamplingDelay = 0;         
  ADC_CommonInit(ADC1, &ADC_CommonInitStructure);
官方驱动ADC_CommonInit(ADC1, &ADC_CommonInitStructure);是对ADCx_CCR进行配置
而器件手册RM3316上明确指出ADCx_CFGR的ADC_CFGR_DMACFG是对DMA单次还是连续转换的控制开关,
使用ADC_DMAConfig(ADC1,ENABLE) ;还是不能连续转换,进入ADC_DMAConfig函数:修改代码
void ADC_DMAConfig(ADC_TypeDef* ADCx, uint32_t ADC_DMAMode)
{
  /* Check the parameters */
  assert_param(IS_ADC_DMA_PERIPH(ADCx));
  assert_param(IS_ADC_DMA_MODE(ADC_DMAMode));
  /* Set or reset the DMACFG bit */
   ADCx->CFGR &= ~(uint32_t)ADC_CFGR_DMACFG;
  /*Modify By SuperSnoic.LYL 2013.7.31*/
   if(ADC_DMAMode==ENABLE)
   {
    ADCx->CFGR |= ADC_CFGR_DMACFG;
    }
}
终于连续转换了
坑爹的 
 
收藏 2 评论2 发布时间:2013-7-31 22:48

举报

2个回答
KUXINGSENG110 回答时间:2014-9-25 01:26:39

回复:STM32F3 DISCONVERY DMA只能单次转化,不能连续转换的原因

 楼主你好,我用STM32F303的库函数编程,怎么没有外设地址的定义啊,比如   DMA_InitStructure.DMA_PeripheralBaseAddr=DAC_DHR12RD_Address;  编译时就会显示“DAC_DHR12RD_Address”is undefined ,,能帮忙解决一下吧
kevin-421343 回答时间:2014-9-25 01:47:16

RE:STM32F3 DISCONVERY DMA只能单次转化,不能连续转换的原因

不早了,该睡睡吧,有什么问题白天解决,身体重要

所属标签

相似问题

官网相关资源

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