历史上的今天
返回首页

历史上的今天

今天是:2024年10月06日(星期日)

2018年10月06日 | STM32ADC转换中断读取

2018-10-06 来源:eefocus

ADC中断读取方式适用于低频率的ADC采集,而高频率的AD采集必须使用DMA,

ADC中断读取的初始化函数只是比上一篇的直接读取方式添加了点中断配置文件,代码如下:

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;

//ADC_GPIO_Config();

RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,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_ITConfig(ADC1,ADC_IT_EOC,ENABLE);

  ADC_Cmd(ADC1,ENABLE);

ADC_ResetCalibration(ADC1);

while(ADC_GetResetCalibrationStatus(ADC1));

ADC_StartCalibration(ADC1);

while(ADC_GetCalibrationStatus(ADC1));

ADC_SoftwareStartConvCmd(ADC1,ENABLE);

}

static void ADC_NVIC_Config()

{

NVIC_InitTypeDef NVIC_InitStructure;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

       NVIC_InitStructure.NVIC_IRQChannel = ADC1_2_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1 ;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

}

void ADC_InitConfig(void)

{

ADC_NVIC_Config();

       ADC_GPIO_Config();

ADC_Mode_Config();

}

上面的红色部分即为需要添加的代码,分析上面的代码其实就是允许ADC的中断,设置中断的优先级

实际效果图就不发了,代码都是经过测试的,对了,还有个中断服务函数没发出来呢

void ADC1_2_IRQHandler(void)

{

      if(ADC_GetITStatus(ADC1,ADC_IT_EOC) == SET)

{

 adcconverdata=ADC_GetConversionValue(ADC1);

}

ADC_ClearITPendingBit(ADC1,ADC_IT_EOC);

}


推荐阅读

史海拾趣

Brand-Rex公司的发展小趣事

除了在欧洲和中国市场取得显著成就外,Brand-Rex还积极拓展全球市场。其亚太区总部设在澳大利亚墨尔本市,大中国区办事处分别设在北京、上海及香港,东南亚办事处设在新加坡。这些布局使得Brand-Rex能够更好地服务全球客户,满足不同地区的市场需求。同时,Brand-Rex还积极寻求与全球知名企业的合作机会,通过战略合作和技术交流不断提升自身的竞争力和创新能力。

综上所述,Brand-Rex在电子行业中的发展是一个充满挑战和机遇的过程。凭借其卓越的技术、优质的产品和全球市场的布局,Brand-Rex不断壮大并成为行业内的佼佼者。未来,随着全球电子行业的不断发展,Brand-Rex有望继续保持其领先地位,并为全球客户提供更加优质的产品和服务。

Brilliance公司的发展小趣事

Brilliance公司起源于科技创新的热潮之中,由一群充满激情的电子工程师和创业者共同创立。公司成立之初,便致力于研发具有创新性和实用性的电子产品。通过不断的技术攻关和市场调研,Brilliance成功推出了一系列受到消费者欢迎的产品,逐步在电子行业中崭露头角。

Hong Kong X'Tals Ltd公司的发展小趣事
选择合适的电阻和电容,以确保定时精度和电路稳定性。同时,注意元件的温漂和老化对定时时间的影响。
Compensated Devices Inc公司的发展小趣事

面对国内外市场的激烈竞争,CDI积极寻求与合作伙伴的共赢发展。公司与多家知名电子设备制造商建立了长期稳定的合作关系,共同开发新产品、拓展新市场。通过合作,CDI不仅提升了自身的技术水平,还成功打入了多个国际市场,实现了业务的快速增长。

Advanced Photonix公司的发展小趣事

在电子行业的早期,Advanced Photonix以其卓越的光学技术脱颖而出。公司创始团队由一群富有远见的科学家和工程师组成,他们专注于研发高速光电子和高性能的光纤测试产品。经过无数次的实验和试错,团队终于成功开发出一种具有创新性的光纤传感技术,这一技术为电信行业提供了前所未有的分布式光纤传感解决方案。这一技术突破不仅为Advanced Photonix赢得了市场声誉,也奠定了公司在电子行业的重要地位。

AMERICASEMI [America Semiconductor, LLC]公司的发展小趣事

随着电子行业的快速发展,AMERICASEMI意识到只有不断创新才能在市场中立于不败之地。因此,公司加大了对研发的投入,积极引进先进的技术和设备,不断提升自身的研发能力。经过多年的努力,AMERICASEMI成功研发出多款具有创新性的半导体产品,如高性能的功率管理芯片和低功耗的传感器等,这些产品在市场上获得了广泛的认可。

问答坊 | AI 解惑

安检门原理及常见问题和维修方法

一、安检门原理由晶振产生3.5-4.95M的正弦振荡,由分频器分频为7.8K左右正弦波,经三极管与线圈进行功率放大后输入门板(7区)大线圈进行电磁波发射,由门内1-6区线圈分别进行接收。接收后,将接收到的信号与基准信号进行了比较,发现变化后,改变采 ...…

查看全部问答>

基站被盗的几大理由

  基站即公用移动通信基站,是无线电台站的一种形式,是指在一定的无线电覆盖区中,通过移动通信交换中心,与移动电话终端之间进行信息传递的无线电收发信电台. 移动通信基站的建设是我国移动通信运营商投资的重要部分,根据媒体的报道,中国移 ...…

查看全部问答>

索尼研发无线供电的目的是什么?

索尼试制了不用电源线即可驱动电视机等电子产品的“无线供电系统”。这种技术通过磁场共振传输电力,可向距离50cm~80cm的电子产品传输60W的电力。供受电设备间的送电效率为80%,加上电源整流电路等,系统整体效率维持在了60%。笔者日前采访了参 ...…

查看全部问答>

用Keil仿真经常出问题,无厘头

用LED共阴极方式写运行无错误 unsigned char code BitTab[]={0x02,0x04,0x08,0x10,0x20,0x40,0x80}; unsigned char code DispTab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; 把里面的数改为共阳极的数,就有*** error 65: access ...…

查看全部问答>

创造力,幻想,臆想天开 - 大家可以得出自己的结论

100件未来式设计方案,是否反映出想象力和现实的矛盾呢?作出你自己的判断吧http://www.webdesignerdepot.com/2009/04/100-amazing-futuristic-design-concepts-w-wish-were-real/…

查看全部问答>

TI研讨会中奖“TMDX5515EZDSP 开发板和工具包 ”

    C5515 DSP的主要特性与优势: 3 个片上 LDO 分别用于 DSP 内核、USB 以及模拟子系统; SDRAM 与移动 SDRAM 可支持低功耗应用; 包括高速 USB 2.0、I2S、UART、SP ...…

查看全部问答>

求用最小系板和DS18B20来测量温度并在12864液晶上显示

 各位玩MSP430的大大们,求助啦~! 想用MSP430最小系统版和DS18B20来测量温度,且在12864LCD液晶上面显现出数据来! 可不可以帮忙写下代码啊! 急用啊! 下面的CX-1A系统版的原理图 小弟感激不尽! [ 本帖最后由 z9 ...…

查看全部问答>

【视频分享】TMS320C64x+网络课程9 - sRIO(串行RapidIO)

简介:TMS320C64x+网络课程9——sRIO(串行RapidIO),主要介绍sRIO的一些基本信息,如支持特性,memory管理,中断支持,在DSP内部进行传输,BIOS中的支持等。此网络培训针对C64x+,每次一个专题,由DSP高性能部门技术支持工程师为您全程指导,敬请 ...…

查看全部问答>

PIC24FJ64GA002 引脚控制

怎么让一个管脚先为高电平  延时一会  再让另一个管脚也为高?我用延时做的   为什么先置高的就是高 延时后置高的就不能置高呢?…

查看全部问答>

都说DSP,搞半天都不知道DSP是什么

谁都知道,DSP的意思是 数字信号处理器。但是仅此而已。 今天专门花了点时间,看了看DSP的一些介绍。 东西挺多,挑点足够扫盲的来说。 数字信号处理器说白了也是一种信号处理用的器件。 我们似乎更加熟悉 模拟信号处理。 比如模拟信号处理的核 ...…

查看全部问答>