4437|3

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

等精度采样后在DMA中的数据怎么提取出来 [复制链接]

AD设置()

  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);



  /* ADC1 regular channel14 configuration */
  ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1, ADC_SampleTime_239Cycles5);

  /* Set injected sequencer length */
  ADC_InjectedSequencerLengthConfig(ADC1, 1);
  /* ADC1 injected channel Configuration */
  ADC_InjectedChannelConfig(ADC1, ADC_Channel_11, 1, ADC_SampleTime_71Cycles5);
  /* ADC1 injected external trigger configuration */
  ADC_ExternalTrigInjectedConvConfig(ADC1, ADC_ExternalTrigInjecConv_None);

  /* Enable automatic injected conversion start after regular one */
  ADC_AutoInjectedConvCmd(ADC1, ENABLE);

  /* Enable ADC1 DMA */
  ADC_DMACmd(ADC1, ENABLE);

  /* Enable ADC1 external trigger */
  ADC_ExternalTrigConvCmd(ADC1, ENABLE);

  /* Enable JEOC interupt */
  ADC_ITConfig(ADC1, ADC_IT_JEOC, ENABLE);

  /* Enable ADC1 */
  ADC_Cmd(ADC1, ENABLE);

  /* Enable ADC1 reset calibaration register */   
  ADC_ResetCalibration(ADC1);
  /* Check the end of ADC1 reset calibration register */
  while(ADC_GetResetCalibrationStatus(ADC1));

  /* Start ADC1 calibaration */
  ADC_StartCalibration(ADC1);
  /* Check the end of ADC1 calibration */
  while(ADC_GetCalibrationStatus(ADC1));



定时器设置

  /* 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);
此帖出自stm32/stm8论坛

最新回复

                                 O(∩_∩)O谢谢  详情 回复 发表于 2010-1-20 18:00
点赞 关注
 

回复
举报

75

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
此为采集正弦波一个周期内1024个点    通过定时触发采样时间
直接用定时器触发ADC转换,再由ADC触发DMA传送,在1024次传送完成时产生中断,一次性处理1024个采样结果。  而现在需要处理这1024个数据  DMA传输后的数据不晓得传到哪个函数里了
此帖出自stm32/stm8论坛
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

板凳
 


楼主,DMA的意思是Direct Memory Access
传完的数据当然是放在内存中了
你只要去读你指定的内存地址就行了,没有特别的函数
此帖出自stm32/stm8论坛
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

4
 
                                 O(∩_∩)O谢谢
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表