硬件:EFM32GG230512
工具:keil5

ADC实验
简单测量电压

初始化

/*********************************************************************************************************
** Function name:      adc_ch2_init
** Descriptions:       ADC初始化
** input parameters:   none
** output parameters:  none
** Returned value:     none
*********************************************************************************************************/
void adc_init(void){//  CMU_ClockEnable(cmuClock_HFPER, true);CMU_ClockEnable(cmuClock_ADC0, true);                               /* 使能ADC模块时钟              */ADC_Init_TypeDef tAdcInit = {.ovsRateSel = adcOvsRateSel2,                                   /* ADC过采样配置                */.lpfMode    = adcLPFilterBypass,                                /* 旁路输入滤波RC电路           */.warmUpMode = adcWarmupNormal,                                  /* 正常预热模式                 */.timebase   = ADC_TimebaseCalc(0),                              /* 基时间配置                   */.prescale   = ADC_PrescaleCalc(7000000, 0),                     /* ADC时钟分频配置              */.tailgate   = false                                             /* 不使能Tailgate               */};ADC_InitSingle_TypeDef tSingleInit = {.prsSel     = adcPRSSELCh0,                                     /* 选择PRS通道0                 */.acqTime    = adcAcqTime16,                                     /* 配置采集时间为16周期         */.reference  = adcRefVDD,                                        /* 使用VDD参考电压              */.resolution = adcRes12Bit,                                      /* 使用12位分辨率               */.input      = adcSingleInpCh2,                                    /* 输入选择通道2                */.diff       = false,                                            /* 不采用差分采集模式           */.prsEnable  = false,                                            /* 禁能PRS输入                  */.leftAdjust = false,                                            /* 使用右对准                   */.rep        = false                                             /* 不使用连续转换               */};ADC_Init(ADC0, &tAdcInit);ADC_InitSingle(ADC0, &tSingleInit);                                 /* 初始化ADC单次转换            */
}/*********************************************************************************************************
** Function name:      get_ch2_value
** Descriptions:       获取ch2通道电压值
** input parameters:   none
** output parameters:  none
** Returned value:     电压值
*********************************************************************************************************/
uint32_t get_value(void){uint32_t ulVoltage;CMU_ClockEnable(cmuClock_ADC0, true);ADC_Start(ADC0, adcStartSingle);                                    /* 启动单次转换                 */while (ADC0->STATUS & ADC_STATUS_SINGLEACT) ;ulVoltage = ADC_DataSingleGet(ADC0) * 330 / 4095;                   /* 计算采集到的电压值           */CMU_ClockEnable(cmuClock_ADC0, false);return (ulVoltage);
}

main

/*********************************************Copyright (c)***********************************************
** File name:                   main.c
** Created by:                  Gui
** Version:                     V1.0.0
** Descriptions:                ADC测试,使用PD2作为输入,检测电压值
*********************************************************************************************************/
#include "system.h"
#include "em_device.h"
#include "em_chip.h"
#include "em_cmu.h"
#include "delay.h"
#include "adc.h"int main()
{CMU_ClockEnable(cmuClock_HFPER, true); //前置芯片设置CMU_ClockEnable(cmuClock_GPIO, true);if(SysTick_Config(SystemCoreClockGet()/1000))while(1);//1ms的systick中断adc_init();while(1){get_value();}
}

EFM32例程——ADC相关推荐

  1. 小壁虎EFM32之ADC 采集电压

    前言 最近在学习小壁虎EFM32芯片的使用,需要用ADC采集电压,学习之中,遇到一些小问题和需要注意的地方,现将其记录下来,避免以后自己再次踩坑和往后可以学而时习之:好了,进入正题. 代码 主函数: ...

  2. EFM32例程——LETIMER

    硬件:EFM32GG230512 工具:keil5 LETIMER实验 LETIMER测试,输出PWM波 初始化 /****************************************** ...

  3. EFM32例程——DMA

    硬件:EFM32GG230512 工具:keil5 DMA实验 DMA测试,内存间传输 初始化 /*********************************************Copyri ...

  4. EFM32例程——AES

    硬件:EFM32GG230512 工具:keil5 AES实验 AES测试,AES加解密测试 打开时钟 /*********************************************Co ...

  5. EFM32例程——DAC

    硬件:EFM32GG230512 工具:keil5 DAC实验 DAC测试,使用DAC输出固定电压值 初始化 /******************************************** ...

  6. EFM32例程——新建template工程

    硬件:EFM32GG230512 工具:keil5 Simplicity Studio : 是Silicon Labs的一款开发软件,在里面有很多例程和工具. 1.创建CMSIS文件夹.这个文件夹存放 ...

  7. EFM32例程——ACMP

    硬件:EFM32GG230512 工具:keil5 ACMP实验 ACMP测试,ACMP测量判断输入电压高低 输出ACM_OUT获得高低信号 初始化 /************************ ...

  8. EFM32例程——CMU

    硬件:EFM32GG230512 工具:keil5 CMU实验 CMU测试,输出时钟 初始化 /*********************************************Copyrig ...

  9. EFM32例程——EMU

    硬件:EFM32GG230512 工具:keil5 EMU实验 EMU测试,进入em4休眠和唤醒 main /********************************************* ...

最新文章

  1. 第二家公司Get技能总结
  2. python rs485_PySerial RS485读取
  3. 山西财经大学计算机考试题及答案,2018年山西财经大学计算机应用技术408计算机学科专业基础综合之计算机操作系统考研基础五套测试题...
  4. Python基础教程:list深拷贝和浅拷贝
  5. Java数字、货币格式化
  6. python中的参数函数_python中函数与参数的简介
  7. python中的文件I/O
  8. VS code解决Latex不显示参考文献,正文中显示[?]的问题
  9. 国家邮政局:前10月邮政行业业务收入同比增长17.8%
  10. 金山词霸2016下载的离线词典包位置
  11. 工作3年以上的程序员现在都在做什么工作?
  12. 入手评测 i7 1255u和i5 1235U选哪个好
  13. 专访Databricks辛湜,谈Spark排序比赛摘冠及生态圈热点-2014
  14. 思维导图工具---Xmind使用方法和快捷键汇总(精简版)
  15. JS实现RGB,HSL,HSB相互转换
  16. JAVA面试大全(持续更新中...)
  17. Android面试,给正在找工作的安卓攻城师们 ... ...
  18. 【潍坊seo公司】普通人都能学会的SEO,让你打破网络营销瓶颈
  19. 12、Pytest之@pytest.mark.自定义标签使用
  20. Kibana的安装与使用

热门文章

  1. 教学计划编制源代码c语言,《数据结构C语言》教学计划编制问题.doc
  2. 毕业月薪3万起!算法工程师九成硕博学历,腾讯成AI人才收割机
  3. STM32如何在LCD上显示单词、文字、图片等
  4. 使用python绘制一个渐变色的圆
  5. 马云说的到底对不对,京东到底行不行?
  6. 智慧社区GIS系统开发详细设计
  7. HTC手机官解、S-ON/S-OFF与超级CID的关系
  8. angular2--安装和使用
  9. 全社会一台“云电脑”,阿里云要做新时代的Windows
  10. RK平台--EVS模块: (二)EVS框架介绍