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

stm32f4 discovery ADC3_DMA 例

[复制链接]
子夜-234177 提问时间:2012-5-22 10:37 /
stm32f4 discovery ADC3_DMA例程在学习的时候,我想将例程里面的单个采样值存储,改用数组存储,做了如下改动:
//__IO uint16_t ADC3ConvertedValue = 0;
__IO uint16_t ADC3ConvertedValue[2048];
 while (1)
  {
  
    /* convert the ADC value (from 0 to 0xFFF) to a voltage value (from 0V to 3.3V)*/
    //ADC3ConvertedVoltage = ADC3ConvertedValue *3300/0xFFF;
  
  }
  //DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)&ADC3ConvertedValue;
 DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)ADC3ConvertedValue;
 
  //DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
 DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;
ADC_RegularChannelConfig(ADC3, ADC_Channel_12, 1, ADC_SampleTime_3Cycles);
得到的值没有规律,我的输入信号是三角波,频率100khz
用adc dma的Normal的数据,两个最低点之间的点数是24个,有上升下降的规律
0x00F9
0x00FA
0x020B
0x029C
0x024D
0x0390
0x0491
0x04FE
0x061B
0x06A6
0x0643
0x0793
0x088F
0x07F9
0x07A7
0x06EB
0x053C
0x0537
0x04E1
0x0411
0x03BD
0x02F8
0x0145
0x0138
0x00DC
 用adc dma的Circular的数据,两个最低点之间的点数是24个,没有上升下降的规律
 
0x00CC
0x05FF
0x06B5
0x0104
0x06C2
0x05AF
0x072C
0x00C0
0x061C
0x04DE
0x076B
0x03FD
0x0275
0x074E
0x04A1
0x0827
0x02A2
0x02CA
0x0882
0x0288
0x0730
0x0155
0x043B
0x06FE
0x026E
 
收藏 评论8 发布时间:2012-5-22 10:37

举报

8个回答
废鱼 回答时间:2012-5-22 17:35:11

RE:stm32f4 discovery ADC3_DMA 例

测试的和你输出的有一定的数据间隔,你可以把数据安装XY表的格式填写出来,然后画图,看看波形是否一致就行了。
子夜-234177 回答时间:2012-5-29 16:26:46

回复:stm32f4 discovery ADC3_DMA 例

回复第 2 楼 于2012-05-22 17:35:11发表:
测试的和你输出的有一定的数据间隔,你可以把数据安装XY表的格式填写出来,然后画图,看看波形是否一致就行了。 

ADC3_DMA 在开启DMA的circle模式时,软件调试加入断点,停止后查看数据,没有三角波周期变化的规律,我加入了DMA传输完成中断十次后,关闭adc和dma,查看到的数据,有三角波的变化规律。是由于调试时软件查看数据的方式不对,adc和dma都是硬件工作方式,软件停止后adc和dma仍然在工作,查看到的数据自然就不对了。
子夜-234177 回答时间:2012-5-29 16:43:31

回复:stm32f4 discovery ADC3_DMA 例

我现在做ADC_Interleaved_DMAmode2的试验,得到的数据每六个数据的周期变化,输入信号是100khz,0-1.6v三角波,下面是一个周期的数据,72个,采样率就是7.2M吗?
0x00CE0136,0x00CE0136,0x00CE0136,0x00CE0136,0x01200050,0x018000FB,
0x016401C9,0x016401C9,0x016401C9,0x016401C9,0x02AA0209,0x02FC0278,
0x03670271,0x03670271,0x03670271,0x03670271,0x03B003A5,0x03560407,
0x04B604A2,0x04B604A2,0x04B604A2,0x04B604A2,0x054A048F,0x057E0555,
0x057405E1,0x057405E1,0x057405E1,0x057405E1,0x06B10601,0x07080685,
0x0774066D,0x0774066D,0x0774066D,0x0774066D,0x07AE079F,0x07440803,
0x08B4089C,0x08B4089C,0x08B4089C,0x08B4089C,0x0873081A,0x07BC0813,
0x06D607AB,0x06D607AB,0x06D607AB,0x06D607AB,0x072C06E5,0x06AA0697,
0x0638059A,0x0638059A,0x0638059A,0x0638059A,0x058D05EE,0x044A056F,
0x04CF052B,0x04CF052B,0x04CF052B,0x04CF052B,0x04800439,0x03DF0409,
0x02E303C0,0x02E303C0,0x02E303C0,0x02E303C0,0x0341030E,0x02AF02A3,
0x022F01B6,0x022F01B6,0x022F01B6,0x022F01B6,0x019001F8,0x00560171,
0x00C7012D,0x00C7012D,0x00C7012D,0x00C7012D,0x012B0068,0x0170013E.
ataudio 回答时间:2014-7-29 09:21:06

回复:stm32f4 discovery ADC3_DMA 例

请教一下啊,这个采集数据是怎么导出来的呢?
ataudio 回答时间:2015-1-7 08:21:14
安 发表于 2012-5-22 17:35
测试的和你输出的有一定的数据间隔,你可以把数据安装XY表的格式填写出来,然后画图,看看波形是否一致就行 ...

版主,请问ADC采样到STM32F407的数据,怎么能导出来?难道要一个一个手写出来吗?2.4M SPS的点太多了。
废鱼 回答时间:2015-1-7 15:45:45
ataudio 发表于 2015-1-7 08:21
版主,请问ADC采样到STM32F407的数据,怎么能导出来?难道要一个一个手写出来吗?2.4M SPS的点太多了。 ...

自己通过串口输出一下就可以了。
ataudio 回答时间:2015-1-7 15:56:18
串口输出是可以的,但低波特率时(超低功耗应用),传输信息太少,开发前期不利于实时记录错误信息。可导内存是另一种方式以确认错误。
wcf15d 回答时间:2015-11-20 17:05:02
子夜-234177 发表于 2012-5-29 16:26
回复第 2 楼 于2012-05-22 17:35:11发表:
测试的和你输出的有一定的数据间隔,你可以把数据安装XY表的格式 ...

楼主有遇到DMA中断只进中断一次就卡住么

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版