历史上的今天
返回首页

历史上的今天

今天是:2024年09月22日(星期日)

正在发生

2018年09月22日 | STM32 ADC单次转换DMA读取

2018-09-22 来源:eefocus

 DMA读取方式很适合高频率的ADC采样信号。

     ADC的DMA读取方式,其实和上一篇的中断读取方式差不多,初始化代码更是相似。初始化代码如下:

static void ADC_GPIO_Config(void)

{

  GPIO_InitTypeDef  GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //ʹÄÜPB,PE¶Ë¿ÚʱÖÓ

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;

GPIO_Init(GPIOA, &GPIO_InitStructure);

}

static void ADC_Mode_Config(void)

{

  ADC_InitTypeDef ADC_InitStructure;

  DMA_InitTypeDef DMA_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE);

DMA_DeInit(DMA1_Channel1);

DMA_InitStructure.DMA_PeripheralBaseAddr=(uint32_t)&ADC1->DR;

DMA_InitStructure.DMA_MemoryBaseAddr=(uint32_t)&adcconverdata;

DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;

DMA_InitStructure.DMA_BufferSize=1;

DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;

DMA_InitStructure.DMA_PeripheralInc =DMA_PeripheralInc_Disable ;

DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;

DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;

DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;

DMA_InitStructure.DMA_Priority = DMA_Priority_Medium;

DMA_InitStructure.DMA_M2M=DMA_M2M_Disable;

DMA_Init(DMA1_Channel1,&DMA_InitStructure);

DMA_Cmd(DMA1_Channel1,ENABLE);

ADC_DeInit(ADC1);

ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;

ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;

ADC_InitStructure.ADC_ScanConvMode=DISABLE;

ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;

ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;

ADC_InitStructure.ADC_NbrOfChannel=ADC_Channel_1;

ADC_Init(ADC1,&ADC_InitStructure);

RCC_ADCCLKConfig(RCC_PCLK2_Div8); 

ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_239Cycles5);

ADC_DMACmd(ADC1,ENABLE);

  ADC_Cmd(ADC1,ENABLE);

ADC_ResetCalibration(ADC1);

while(ADC_GetResetCalibrationStatus(ADC1));

ADC_StartCalibration(ADC1);

while(ADC_GetCalibrationStatus(ADC1));

ADC_SoftwareStartConvCmd(ADC1,ENABLE);

}

void ADC_InitConfig(void)

{

  ADC_GPIO_Config();

  ADC_Mode_Config();

}

上面代码写的很清楚了,虽然没有标注,相信也能看懂,代码很简单,就不做解释了


推荐阅读

史海拾趣

Diconex公司的发展小趣事

在电子行业中,Diconex公司始终坚持以客户需求为导向的市场定位策略。公司深入调研市场需求,针对不同客户群体推出定制化解决方案。这种精准的市场定位使得Diconex的产品能够更好地满足客户需求,赢得了客户的信任和忠诚。同时,公司还积极拓展国际市场,与全球知名企业建立了长期稳定的合作关系。

Hamamatsu公司的发展小趣事

人才是企业发展的核心动力。Diconex公司高度重视人才培养和引进工作。公司建立了完善的人才培养机制,为员工提供广阔的发展空间和良好的职业晋升通道。同时,公司还积极引进行业优秀人才,为公司的快速发展提供了有力的人才保障。这种人才战略的成功实施使得Diconex在电子行业中拥有了强大的技术团队和人才队伍。

CANDD公司的发展小趣事

在快速发展的过程中,CANDD公司始终注重企业文化的建设。公司倡导创新、协作、诚信和担当的核心价值观,鼓励员工勇于创新、敢于担当。同时,公司还注重员工的培训和成长,为员工提供了广阔的职业发展空间。这些举措不仅激发了员工的工作热情,还为公司培养了一批忠诚、有能力的员工队伍。在企业文化的引领下,CANDD公司不断向前发展,成为了电子行业的佼佼者。

这些故事虽然基于虚构的CANDD公司,但它们所反映的电子行业发展趋势和企业管理理念是真实存在的。通过这些故事,我们可以更好地理解电子行业的发展历程和未来趋势。

Harbour Industries公司的发展小趣事

背景:20世纪末,随着电子技术的飞速发展,Handok敏锐地捕捉到了半导体行业的崛起机遇。公司决定投入大量研发资源,专注于开发新型半导体材料和技术。

发展:经过数年的潜心研究,Handok成功研发出一种具有更高导电性和稳定性的新型半导体材料,这一创新成果迅速获得了业界的广泛关注。公司迅速将这项技术应用于生产,推出了一系列高性能的半导体产品,迅速占领了市场的一席之地。

影响:Handok的技术革新不仅推动了公司自身的快速发展,还对整个半导体行业产生了深远的影响,促进了整个产业链的升级和转型。

Advanced Components Industries Inc公司的发展小趣事

Advanced Components Industries Inc(以下简称ACI)在电子行业的崛起,始于一次关键的技术突破。公司研发团队成功开发出一种新型的高效能电子元件,这一创新不仅提高了电子设备的性能,还降低了能耗。这一成果迅速吸引了市场的关注,ACI的订单量激增,公司开始迅速扩张。

随着技术的不断完善和市场的认可,ACI逐渐在电子元件领域建立了自己的品牌地位。公司不断投入研发,推出了一系列具有竞争力的产品,逐渐在行业中崭露头角。

ABB Group公司的发展小趣事

面对数字化浪潮的冲击,ACI积极拥抱变革,推动公司的数字化转型。公司引入了先进的生产管理系统和数据分析工具,实现了生产过程的智能化和精细化管理。

数字化转型不仅提高了ACI的生产效率和质量水平,还使其能够更好地把握市场动态和客户需求。公司能够根据市场变化迅速调整生产计划和产品策略,保持竞争优势。


以上五个故事都是基于电子行业的一般发展趋势和可能的公司发展路径而创作的,旨在展示一个电子企业在不同方面的发展和成长。请注意,这些故事并非基于真实事件,因此可能与实际情况存在差异。

问答坊 | AI 解惑

2007年全国大学生电子设计竞赛工作总结报告

本帖最后由 paulhyde 于 2014-9-15 09:40 编辑 一、2007年竞赛组织工作总结 全国大学生电子设计竞赛组织工作始终坚持高举教育教学改革大旗,坚持紧密结合课堂教学实际,坚持教育部高等教育司和信息产业部人事司领导,以促进教学改革为目标;以广 ...…

查看全部问答>

某个高校老师对电子竞赛的精辟见解

本帖最后由 paulhyde 于 2014-9-15 08:57 编辑 感觉挺精辟的 2009年赛前题目分析 1. 分析 以2009年公布的全国大学生电子设计竞赛基本仪器和主要元器件清单来看: 从信号发生器和示波器的频率范围可见,应该有两道信号类题,一个是低频的1 ...…

查看全部问答>

终于会在quartus里面使用synplify pro进行综合了

摸索了半天终于知道需要在opinions-edatools里面把“use nativelink”打开才行 …

查看全部问答>

WinCE中如何启动拍照功能

手上有一款PDA,WinCE50的系统,有照相功能;我可以从注册表中看到摄像头的驱动信息,但不知道怎么启动它; 如何通过程序启动并拍照;C#或C++的; 最好有c#的;…

查看全部问答>

找兼职 多普达手机发短信和接受短信息,服务器接受并解析和向pda发短信息,pda操作系统是wm ,服务器操作系统xp

找兼职 多普达手机发短信和接受短信息,服务器接受并解析和向pda发短信息,pda操作系统是wm ,服务器操作系统xp,是要求有成功案例或项目经验。 联系 msn djliu221@163.com qq 412925762 谢绝新手…

查看全部问答>

driverworks哪里有下载啊???????

www.driverdevelop网占太烦了要注册收费而已速度2k/s有没有方便点的下载,谢谢大家!…

查看全部问答>

版主你好,我有问题想请教你一下。

本帖最后由 paulhyde 于 2014-9-15 09:03 编辑 版主你好,我想请教你一下今年省赛的B题的第一问。“…

查看全部问答>

Flash问题..

430里面Flash的主存储区和信息存储区有什么区别么? 是不是程序是保存在主存储区里面的..那信息存储区是存什么信息的呢》? 存进去之后是不是随时能够读写出来呢>?…

查看全部问答>

拿到LM3S811开发板的同仁有没有移植UCOS-II的?

拿到坛子里面的811开发板后玩了一下,在IAR6.10里面裸奔程序没有问题,但是试着移植UCOS-II却不行,不知道是不是RAM空间不够。…

查看全部问答>