OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4284|回复: 4

制作简易示波器中关于AD采样的问题

[复制链接]

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2016-9-23
在线时间
15 小时
发表于 2016-12-2 21:21:32 | 显示全部楼层 |阅读模式
20金钱
   设计了一个简易数字示波器,AD采样的配置用的是正点原子视频中的配置,即AD配置为 ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;    独立模式
  ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;   //两次采样间隔5个时钟
  ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled; /  DMA不是能
  ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div4;   @正点原子 @229382777@qq.co
  ADC_CommonInit(&ADC_CommonInitStructure);
       
  ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
  ADC_InitStructure.ADC_ScanConvMode = DISABLE;       
  ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;              //
  ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  ADC_InitStructure.ADC_NbrOfConversion = 1;
  ADC_Init(ADC1, &ADC_InitStructure);
  ADC_Cmd(ADC1, ENABLE);

然后我的采样函数是
            for(i=0;i<=400;i++)                        adcx=Get_Adc_Average(ADC_Channel_5,2);
其中
       u16 Get_Adc_Average(u8 ch,u8 times)
   {
        u32 temp_val=0;
        u8 t;
        for(t=0;t<times;t++)
                temp_val+=Get_Adc(ch);
        return temp_val/times;
     }
然后u16 Get_Adc_Average(u8 ch,u8 times)中的time为2,设的采样周期是3个时间周期,那么总的采样周期T=3+12+5=20个采样周期那么我的采样频率大概是1M,即1KHZ的信号我能采1000个点,但是我只采到大概两三百个点。求原因或者有没有更好的关于制作简易示波器中AD采样的配置,求大神可以指导一下我,谢谢了!



最佳答案

查看完整内容[请看2#楼]

函数调用,是需要时间的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-12-2 21:21:33 | 显示全部楼层
函数调用,是需要时间的
回复

使用道具 举报

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2016-9-23
在线时间
15 小时
 楼主| 发表于 2016-12-2 21:23:39 | 显示全部楼层
对了,我的板子是stm32f407ZGT6
回复

使用道具 举报

1

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-8-30
在线时间
7 小时
发表于 2016-12-6 15:53:17 | 显示全部楼层
66666   忘了这茬
回复

使用道具 举报

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2016-9-23
在线时间
15 小时
 楼主| 发表于 2016-12-16 13:20:57 | 显示全部楼层
正点原子 发表于 2016-12-2 21:21
函数调用,是需要时间的

  我也想过这个原因,但系统时钟是168M的,而AD采样频率只有1M,所以感觉函数的调用对我的AD采样不应该有这么大的影响
  还有就是如果用DMA传输能不能解决这个问题
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-11 13:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表