历史上的今天
返回首页

历史上的今天

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

正在发生

2021年09月09日 | STM32F0xx的ADC配置

2021-09-09 来源:eefocus

STM32F0xx系列单片机基于ST官方标准库V1.5.0的ADC功能的配置


ADC.c文件


#include "ADC.h"


uint32_t  ADC1ConvertedValue = 0, ADC1ConvertedVoltage = 0;


void ADC_GPIO_Configuration(void)

{

GPIO_InitTypeDef  GPIO_InitStructure;

  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);

//端口配置

// GPIO_StructInit(&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;

// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度

  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;

GPIO_Init(GPIOA, &GPIO_InitStructure);

}


void ADC_Configuration(void)

{

ADC_InitTypeDef ADC_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);

ADC_DeInit(ADC1);

ADC_StructInit(&ADC_InitStructure);

ADC_InitStructure.ADC_Resolution  = ADC_Resolution_12b;

ADC_InitStructure.ADC_ContinuousConvMode  = ENABLE;

ADC_InitStructure.ADC_ExternalTrigConvEdge  = ADC_ExternalTrigConvEdge_None;

ADC_InitStructure.ADC_DataAlign  = ADC_DataAlign_Right;

// ADC_InitStructure.ADC_ScanDirection  = ADC_ScanDirection_Backward;

ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Upward; //向上扫描

ADC_Init(ADC1, &ADC_InitStructure);

ADC_ChannelConfig(ADC1, ADC_Channel_1, ADC_SampleTime_239_5Cycles);

  

ADC_GetCalibrationFactor(ADC1);


ADC_Cmd(ADC1, ENABLE);


while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADRDY));

// ADC_ClearFlag(ADC1, ADC_FLAG_EOC);

//开始校准状态

ADC_StartOfConversion(ADC1);

}


uint32_t ADC_Read(void)

{

    /* Test EOC flag */

    while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);

    

    /* Get ADC1 converted data */

    ADC1ConvertedValue = ADC_GetConversionValue(ADC1);

    

    /* Compute the voltage */

    ADC1ConvertedVoltage = (ADC1ConvertedValue * 3300)/0xFFF;

  

return ADC1ConvertedVoltage;

}


ADC.h文件


#ifndef __ADC_H

#define __ADC_H

#include "stm32f0xx.h"

#include "stm32f0xx_adc.h"


//extern uint16_t  ADC1ConvertedValue , ADC1ConvertedVoltage ;

//硬件初始化

void ADC_GPIO_Configuration(void); //AD相关初始化

void ADC_Configuration(void);

uint32_t ADC_Read(void);

#endif


main.c文件


#include "main.h"

#include "stm32f0xx_it.h"

#include "USART.h"

#include "ADC.h"


uint32_t ADC_value;


int main(void)

{

ADC_GPIO_Configuration();

ADC_Configuration();

  while (1)

  {

    ADC_value = ADC_Read();

    USART_printf( USART2, "rn %d rn", ADC_value );

  }

}

推荐阅读

史海拾趣

Freqtech Ohg公司的发展小趣事

Freqtech Ohg公司深知人才是企业发展的第一资源。因此,公司高度重视人才培养和团队建设工作。公司建立了完善的人才培养体系,通过内部培训、外部引进等多种方式,不断提升员工的专业技能和综合素质。同时,Freqtech还注重营造积极向上的企业文化氛围,激发员工的创新精神和团队合作精神。这些努力使得Freqtech拥有一支高素质、专业化的研发团队和管理团队,为公司的持续健康发展提供了有力的人才保障。

需要注意的是,以上故事均为虚构内容,旨在反映电子行业公司可能经历的发展路径和面临的挑战与机遇。对于Freqtech Ohg公司的具体情况,建议直接查阅其官方网站或相关权威报道以获取准确信息。

艾谱科(Epticore)公司的发展小趣事

艾谱科公司始终将产品质量放在首位。公司建立了严格的质量管理体系,从原材料采购到生产制造的每一个环节都进行严格的质量控制。同时,艾谱科还注重售后服务,为客户提供全方位的技术支持和解决方案。这种对品质的执着追求,赢得了客户的信任和好评,也为公司的长期发展提供了有力保障。

Herley New York公司的发展小趣事

在成功推出高效能芯片后,艾谱科公司开始积极拓展市场。公司凭借其产品的技术优势,与多家知名电子产品制造商建立了合作关系。同时,艾谱科还积极参加国际电子展会,向全球客户展示其产品的卓越性能。随着市场知名度的提高,艾谱科的订单量逐渐增加,公司规模也不断扩大。

Holt Integrated Circuits公司的发展小趣事

Holt在CAN控制器领域也取得了重要突破。作为世界上第一家将CAN控制器和收发器集成在同一紧凑塑料封装中的公司,Holt的ARINC 825(CAN)数据总线产品为用户提供了极大的便利。这种集成设计不仅减小了产品的体积和重量,还提高了系统的可靠性和稳定性。Holt的这一创新成果,不仅推动了CAN总线技术在航空航天领域的广泛应用,也为其他行业的自动化控制提供了有力支持。

以上五个故事,从不同角度展现了Holt Integrated Circuits公司在电子行业中的发展历程和卓越成就。这些事实不仅证明了Holt在技术创新和市场拓展方面的实力,也为其在未来的发展中奠定了坚实的基础。

Gustav Klauke GmbH公司的发展小趣事

Holt在CAN控制器领域也取得了重要突破。作为世界上第一家将CAN控制器和收发器集成在同一紧凑塑料封装中的公司,Holt的ARINC 825(CAN)数据总线产品为用户提供了极大的便利。这种集成设计不仅减小了产品的体积和重量,还提高了系统的可靠性和稳定性。Holt的这一创新成果,不仅推动了CAN总线技术在航空航天领域的广泛应用,也为其他行业的自动化控制提供了有力支持。

以上五个故事,从不同角度展现了Holt Integrated Circuits公司在电子行业中的发展历程和卓越成就。这些事实不仅证明了Holt在技术创新和市场拓展方面的实力,也为其在未来的发展中奠定了坚实的基础。

Austek Microsystems公司的发展小趣事

面对行业技术的快速迭代,Austek Microsystems始终保持敏锐的洞察力。公司不断投入研发资金,引进先进的生产设备和技术人才,进行技术升级和产品迭代。通过不断地优化产品性能、提升生产效率,Austek Microsystems逐渐在市场中树立起了技术领先的形象。

问答坊 | AI 解惑

车载移动电视接收的系统方案

在柏林推出的DVB T(地面数字广播)数字电视也已经影响到汽车娱乐系统中的电视接收。现在,汽车电视接收机不仅能够接收模拟电视信号(它仍将在城市以外的地区继续存在数年),而且也能够接收和处理DVB T信号。Hirschmann Electronic ...…

查看全部问答>

S3C2410完全开发流程

这是一篇关于s3c2410的开发文档的资料,以及linux的一些实验…

查看全部问答>

无线收发模块汇总

本帖最后由 paulhyde 于 2014-9-15 09:12 编辑 :P :P :P :P :P :P :P :P :P :P :P 好东西与各位分享!  …

查看全部问答>

电子书---高频电路设计与制作

发一本高频电路设计与制作,日本人写的。感觉还不错。不过有点大,40M,分享啦…

查看全部问答>

单片机双电源切换

请问老师:+5V单片机双电源自动及手动切换用哪种芯片?谢谢!…

查看全部问答>

医用自动洗片机控制器的研制

  1 引 言   洗片机是各医院影像科的必需设备。医院影像科每天要冲洗大量的x-射线透射胶片,工作量大,且洗片操作有一定难度,对操作人员专业技术要求高,另外,洗片时化学药液对人体有伤害。因此,目前医院大多采用医用自动洗片机。进口的 ...…

查看全部问答>

WINCE 5.0 输入法如何实现,

我使用 ARM 2440开发板, 使用WINCE 5.0 (中文)OS, 现在想实验软键盘 汉字输入 和手写 输入。 请前辈们 描述一下实现 思路。 …

查看全部问答>

串口接收不定长字符串

void InitSio(void) {         u16 RELOAD_COUNT = 0;                 //使用独立波特率发生器作为波特率发生器     S2CON    =   0x50;  ...…

查看全部问答>

PB的编译问题

新装的WIN XP SP2, 番茄花园, 然后装PB5.0, 先装.net framework 1.1, 然后装PB5.0(CPU选择了ARMV4I, X86, Emulator). PB5.0 装好之后,就新建工程编译了,这时EVC, VS2005等都还没有装. 用自带的2410BSP新建工程编译的时候出现错误: \"Invalid  ...…

查看全部问答>

电脑拆卸后无法开机

我的电脑拆卸了一次再重新装上后就无法启动了,按电源后只显示品牌标志.…

查看全部问答>