AT32F415单片机例程

/****************************************************************************************
File name:
Description:将GPIO PC0作为AD输入口,PC0是ADC1的通道10
****************************************************************************************/
//------------------------------------- include files -----------------------------------#include <at32f4xx.h>
//------------------------------------- variable define ---------------------------------
unsigned int adc_val;/*******************************************************************************
Function:
Descripton:ADC input channel set
*******************************************************************************/
void adc_port_init(void)
{GPIO_InitType GPIO_InitStructure;/*Enable the GPIO Clock*/
#if defined (AT32F421xx)RCC_AHBPeriphClockCmd(RCC_APB2PERIPH_GPIOC, ENABLE);
#elseRCC_APB2PeriphClockCmd(RCC_APB2PERIPH_GPIOC, ENABLE);
#endifGPIO_StructInit(&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pins = GPIO_Pins_0;
#if !defined (AT32F421xx)GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_ANALOG;
#elseGPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;GPIO_InitStructure.GPIO_OutType = GPIO_OutType_PP;GPIO_InitStructure.GPIO_Pull = GPIO_Pull_NOPULL;
#endif GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_2MHz;  GPIO_Init(GPIOC, &GPIO_InitStructure);
}/*******************************************************************************
Function:
Descripton:enable ADC clock
*******************************************************************************/
void adc_clk_config(void)
{/* ADCCLK = PCLK2/4 */RCC_ADCCLKConfig(RCC_APB2CLK_Div4);         // ê±?ó·??μéè??/* Enable ADC1 clocks */RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_ADC1, ENABLE); // ?a??ADCê±?ó
}/*******************************************************************************
Function:
Descripton:
*******************************************************************************/
void adc_config(void)
{ADC_InitType ADC_InitStructure;__IO uint16_t ADCConvertedValue;int calTimeOut = 1000;/* ADC1 configuration ------------------------------------------------------*/ADC_StructInit(&ADC_InitStructure);ADC_InitStructure.ADC_Mode              = ADC_Mode_Independent;ADC_InitStructure.ADC_ScanMode          = DISABLE;ADC_InitStructure.ADC_ContinuousMode    = DISABLE;      // μ¥′?×a??ADC_InitStructure.ADC_ExternalTrig      = ADC_ExternalTrig_None;ADC_InitStructure.ADC_DataAlign         = ADC_DataAlign_Right;      // bit0 = ADC D0ADC_InitStructure.ADC_NumOfChannel      = 10; // channel 10ADC_Init(ADC1, &ADC_InitStructure);/* ADC1 regular channels configuration */ ADC_RegularChannelConfig(ADC1, 10, 1, ADC_SampleTime_239_5);  /* Enable ADC1 */ADC_Ctrl(ADC1, ENABLE);/* Enable ADC1 reset calibration register */   ADC_RstCalibration(ADC1);/* Check the end of ADC1 reset calibration register */calTimeOut = 1000;while(calTimeOut){if(ADC_GetResetCalibrationStatus(ADC1))  calTimeOut--;else                           break;}/* Start ADC1 calibration */ADC_StartCalibration(ADC1);/* Check the end of ADC1 calibration */calTimeOut = 1000;while(calTimeOut){if(ADC_GetCalibrationStatus(ADC1))    calTimeOut--;else                           break;}/* Start ADC1 Software Conversion */ //ADC_SoftwareStartConvCtrl(MY_ADC_SET, ENABLE);
}/*************************************************************
Function:
Description:
*************************************************************/
void adc_init(void)
{adc_clk_config();adc_port_init();adc_config();
}/*************************************************************
Function:
Description:
*************************************************************/
void ad_convert(void)
{// 开启ADCADC_ClearFlag(ADC1,    ADC_FLAG_AWD    |   ADC_FLAG_EC |   ADC_FLAG_JEC    |   ADC_FLAG_JSTR   |   ADC_FLAG_RSTR );ADC_SoftwareStartConvCtrl(ADC1, ENABLE);// 等待转换完成while(RESET==ADC_GetFlagStatus(ADC1, ADC_FLAG_EC));adc_val = ADC_GetConversionValue(ADC1);}

亚特力单片机AT32F415的ADC单次转换相关推荐

  1. STM-32:ADC模数转换器—ADC单通道转换/ADC多通道转换

    目录 一.ADC 模数转换器 1.1ADC简介 1.2 逐次逼近型ADC工作原理 1.3STM32中的ADC基本结构 1.4STM32中ADC的输入通道 1.5STM32中的ADC的四种转换模式 1. ...

  2. STM32学习笔记(八)丨ADC模数转换器(ADC单、双通道转换)

    本篇文章包含的内容 一.ADC 模数转换器 1.1 ADC简介 1.2 逐次逼近型ADC工作原理 1.3 STM32中的ADC基本结构 1.4 STM32中ADC的输入通道 1.5 STM32中的AD ...

  3. STM8单片机ADC单次采样模式

     STM8S003单片机内部ADC为12位,A/D转换的各个通道可以执行单次和连续的转换模式.  单次转换模式的意思就是,ADC每次转换一次数据后,就会停止转换,如果还需要继续转换的话,就需要手动开启 ...

  4. STM32单片机实现DMA+ADC+UART功能

    突然想测试一下STM32单片机ADC采样速率问题,按照常规方法,可以通过ADC采样,然后将采样值打印出来.但是这种方法在处理和打印数据的时候会占用很多时间,导致处理数据的时间超过了ADC的采样时间.于 ...

  5. AVR单片机模数转换的ADC实验 ATmega16

    6.2 模数转换的ADC实验 6.2.1.实例功能 AVR的模数转换器ADC具有下列特点: 10位精度: 0.5LSB积分非线形误差 ±2LSB的绝对精度: 13µs~260µs的转换时间: 在最大精 ...

  6. 雅特力单片机开发笔记

    目录 1.开发资源获取 2.硬件资源 2.1 硬件原理图pcb资源 2.2 数据手册 3.SDK软件资源 3.1 keil开发环境配置 3.2 软件开发包说明 3.3 jlink配置 3.4 jlin ...

  7. adc采样时间_太秀了!单片机内置 ADC 实现高分辨率采样?

    作者 | 逸珺来源 | 嵌入式客栈(ID:embInn)头图 |  CSDN 下载自东方IC[导读] 相信ADC的应用或多或少都会用到,在很多场合都有分辨率要求,要实现较高分辨率时,第一时间会想到采用 ...

  8. STM32 ADC 单次模式、连续模式、扫描模式(转载)

    ADC单通道: 要求进行一次ADC转换:配置为单次模式使能,扫描模式失能.这样ADC的这个通道,转换一次后,就停止转换. 要求进行连续ADC转换:配置为连续模式使能,扫描模式失能.这样ADC的这个通道 ...

  9. 15. GD32F103C8T6入门教程-adc单通道轮训采集

    1.adc gpio初始化 /*使能各种时钟和adc时钟分频输入*/ void rcu_config(void) {/*使能GPIO时钟 */rcu_periph_clock_enable(RCU_G ...

最新文章

  1. 【306】通过ArcPy编写ArcToolbox
  2. linux运维趋势 37期刊为啥没有,linux运维常见问题
  3. kubernetes mysql pxc_K8S使用operator部署和管理Percona - PXC集群
  4. 苹果进入后 iPhone 时代!
  5. application.properties 中文乱码问题解决
  6. 干了四五年Android 开发了,如何突破成长中的技术瓶颈期?
  7. MS08067安全培训讲师(高薪、专兼职)
  8. python 如何将视频文件的语音转换为文字
  9. 2012年财富世界500强排行榜
  10. 盘点 11 月份 火火火 的 GitHub 项目
  11. 返回到上一个页面并刷新页面
  12. cad图形不见了怎么办_CAD画图突然消失 怎么找回
  13. php删除头尾空,分享php中去除头尾空格的2种方法
  14. 状语和状语从句的使用
  15. 微信小程序 云开发表数据一键清空
  16. python QQ邮件发送
  17. 语音视频社交中回声消除技术是如何实现的
  18. To My Little Princess
  19. mysql权限系统的工作原理_Mysql权限系统工作原理_PHP教程
  20. 误操作,U盘被dispart命令删除分区了怎么恢复?

热门文章

  1. oracle查询结果添加序列,SQL查询结果增加序列号
  2. Windows 8中无法使用Aero:6个仍可以使用的Aero功能
  3. java从入门到放弃,学习路线导航(附学习资源)
  4. 逆向破解之160个CrackMe —— 021
  5. 阿里云建站-CV小站
  6. LayUI前框框架普及版
  7. Dart基础——Dart语法
  8. 互联网十种经典的创业模式
  9. 网卡或网络配置文件(Linux网络操作系统与管理配置)小红帽
  10. 【网优谷】如何快速写出有吸引力的网站标题?