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

【STM32F429开发日志】4.ADC+DMA高速采样(2.4Msps)

[复制链接]
caizhiwei 提问时间:2014-6-1 11:58 /
 


硬件平台:STM32F429I-DISCORVERY
软件平台:KEIL MDK5.10
DMA知识点:直接内存访问(DMA)是用来以提供外设和内存、内存和内存之间的高速数据传输的。数据可以在没有任何CPU干预下通过的DMA进行传输。这使得CPU资源更倾重与其他操作。
       DMA控制器是一个复杂的总线矩阵架构,结合了功能强大的双AHB主总线架构与独立的FIFO,以优化系统带宽。两个DMA控制器共有16个数据流(stream),每个数据流可以编程与规定的通道中的一个搭配。
      在STM32F429I-DISCO board中,由于串口2被L3GD20和液晶数据线占用,所以串口1很方便,而且还留了2个孔外接。

    This example describes how to use the ADC3 and DMA to transfer continuously 
converted data from ADC3 to memory.
    The ADC3 is configured to convert continuously channel13.
    Each time an end of conversion occurs the DMA transfers, in circular mode, the
converted data from ADC3 DR register to the ADC3ConvertedValue variable.
    To get the maximum ADC performance (2.4 MSPS, at 2.4V to 3.6V supply range),  
the ADC clock must be set to 36MHz. As ADC clock is equal to APB2/2, then APB2 
value will be 72MHz which lead to maximum AHB (System clock) at 144MHz. 
Since the sampling time is set to 3 cycles and the conversion time to 12bit data
is 12 cycles, so the total conversion time is (12+3)/36= 0.41us(2.4Msps).


    The converted voltage is displayed on the STM32F429I-DISCO board LCD (when the define USE_LCD
is enabled in main.h). It can also be monitored by adding the variable "ADC3ConvertedValue" 
to the debugger watch window. 


*        说    明 : 实现printf和scanf函数重定向到串口1,即支持printf信息到USART1
*                                实现重定向,只需要添加2个函数:
*                                int fputc(int ch, FILE *f);
*                                int fgetc(FILE *f);
*                                对于KEIL MDK编译器,编译选项中需要在MicorLib前面打钩,否则不会有数据打印到USART1。
*/
 
Description:
This example is used as a template project that can be used as reference to build
any new firmware application for STM32F429xx devices using the STM32F4xx Standard
Peripherals Library. it can be easily tailored to any other supported device and development board.
 
int main(void)
{
   
   uint8_t aTextBuffer[15];
         uint32_t i,sum;
  SysTick_Init();
  STM_EVAL_LED_Config();
  STM_EVAL_PBInit(BUTTON_MODE_EXTI);
       
  /* Initialize the LCD */
  LCD_Init();
  LCD_LayerInit();
  LTDC_Cmd(ENABLE);
  LCD_SetLayer(LCD_FOREGROUND_LAYER);
  LCD_Clear(LCD_COLOR_BLUE);
        LCD_DisplayStringLine(LCD_LINE_4, "Hello,Casy!");
        LCD_DisplayStringLine(LCD_LINE_5, "(*^__^*)");
  USART1_GPIO_Config();
  printf("\n\rHello, Stm32f429-discovery Board ! \n\r");
                               
  ADC3_CH13_DMA_Config();
  
  ADC_SoftwareStartConv(ADC3); /* Start ADC3 Software Conversion */ 
       
  while (1)
  {
      /* convert the ADC value (from 0 to 0xFFF) to a voltage value (from 0V to 3.0V)*/
    uwADC3ConvertedVoltage = uhADC3ConvertedValue *3000/0xFFF;//(0xfff=4096=2^12)
                printf("\n\rThe adc sample voltage is : %d mV\n\r",uwADC3ConvertedVoltage); 
           for(i = 0;i
2014-05-31_19-17-23.jpg
QQ截图20140601114835.jpg

5.ADC3+DMA高速采样(2.4Msps).zip

下载

2.16 MB, 下载次数: 1268, 下载积分: ST金币 -1

收藏 2 评论49 发布时间:2014-6-1 11:58

举报

49个回答
caizhiwei 回答时间:2015-1-6 15:44:55
一意非孤行 发表于 2014-6-25 09:55
又搞上这个了?
 
 

早就搞这个啦,呵呵,采样是基础!!~~
whiledone 回答时间:2015-7-4 15:20:25
不错啊,参考一下,试试这个东西怎么样
liaocongyan-273 回答时间:2016-7-31 17:14:03
楼主 这程序能兼容F103吗?
caizhiwei 回答时间:2014-6-1 11:59:48

RE:【STM32F429开发日志】4.ADC+DMA高速采样(2.4Msps)

关于滤波还没有深入研究,只是做了一个简单的均值滤波。。。呵呵,以后有时间了再整
foxmail-364565 回答时间:2014-6-5 11:54:04

回复:【STM32F429开发日志】4.ADC+DMA高速采样(2.4Msps)

学习下,我用串口DMA发送没问题,接收还没看懂,参考下你的程序
一纸荒凉~~~ 回答时间:2014-6-11 16:26:26

回复:【STM32F429开发日志】4.ADC+DMA高速采样(2.4Msps)

学习学习
wolfram335 回答时间:2014-6-14 15:57:47

回复:【STM32F429开发日志】4.ADC+DMA高速采样(2.4Msps)

串口DMA发送没问题,接收还没看懂,参考下你的程序
wjandsq 回答时间:2014-6-19 09:25:02

RE:【STM32F429开发日志】4.ADC+DMA高速采样(2.4Msps)

不错,来参考下。
王大福 回答时间:2014-6-20 11:52:38

回复:【STM32F429开发日志】4.ADC+DMA高速采样(2.4Msps)

多谢,学习学习
Eagleson 回答时间:2014-6-20 14:08:35

RE:【STM32F429开发日志】4.ADC+DMA高速采样(2.4Msps)

文大大 回答时间:2014-6-20 23:38:14

回复:【STM32F429开发日志】4.ADC+DMA高速采样(2.4Msps)

 多谢分享
 
友情牵绊-2046836 回答时间:2014-6-24 18:03:01

回复:【STM32F429开发日志】4.ADC+DMA高速采样(2.4Msps)

 参考参考!!!
快乐汉 回答时间:2014-6-24 20:55:53

回复:【STM32F429开发日志】4.ADC+DMA高速采样(2.4Msps)

学习中,谢谢分享!
ecsihust 回答时间:2014-6-24 21:58:45

RE:【STM32F429开发日志】4.ADC+DMA高速采样(2.4Msps)


那好吧
kingchou2 回答时间:2014-6-25 09:12:16

RE:【STM32F429开发日志】4.ADC+DMA高速采样(2.4Msps)

顶顶顶!!!!!!
一意非孤行 回答时间:2014-6-25 09:55:39

回复:【STM32F429开发日志】4.ADC+DMA高速采样(2.4Msps)

又搞上这个了?
 
 
回复第 10 楼 于2014-06-24 18:03:01发表:
 参考参考!!!
 
浮云再现 回答时间:2014-6-30 20:36:26

RE:【STM32F429开发日志】4.ADC+DMA高速采样(2.4Msps)

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