1.adc gpio初始化

/*使能各种时钟和adc时钟分频输入*/
void rcu_config(void)
{/*使能GPIO时钟 */rcu_periph_clock_enable(RCU_GPIOA);/* 使能DMA时钟*/rcu_periph_clock_enable(RCU_ADC0);/* enable DMA0 clock ADC 对应的DMA 就是DMA0*/rcu_periph_clock_enable(RCU_DMA0);/* 配置ADC时钟 ,ADC最大14MHz*/rcu_adc_clock_config(RCU_CKADC_CKAPB2_DIV8);
}

2.adc 时钟初始化

/*使能各种时钟和adc时钟分频输入*/
void rcu_config(void)
{/*使能GPIO时钟 */rcu_periph_clock_enable(RCU_GPIOA);/* 使能DMA时钟*/rcu_periph_clock_enable(RCU_ADC0);/* enable DMA0 clock ADC 对应的DMA 就是DMA0*/rcu_periph_clock_enable(RCU_DMA0);/* 配置ADC时钟 ,ADC最大14MHz*/rcu_adc_clock_config(RCU_CKADC_CKAPB2_DIV8);
}/*

3.adc 外设配置

/*!配置ADC外设*/
void adc_config(void)
{/* 设置adc工作在独立模式*/adc_mode_config(ADC_MODE_FREE);/* ADC 数据右对齐模式*/adc_data_alignment_config(ADC0, ADC_DATAALIGN_RIGHT);/* ADC 设置规则通道数量*/adc_channel_length_config(ADC0, ADC_REGULAR_CHANNEL, 1U);/* ADC 规则通道触发源选择 */adc_external_trigger_source_config(ADC0, ADC_REGULAR_CHANNEL, ADC0_1_2_EXTTRIG_REGULAR_NONE); /* ADC external trigger config */adc_external_trigger_config(ADC0, ADC_REGULAR_CHANNEL, ENABLE);/* 使能定时器*/adc_enable(ADC0);delay_1ms(1U);/* 标定复位ADC */adc_calibration_enable(ADC0);
}

4.ADC 单通道数据采集

/*!ADC通道采样*/
uint16_t adc_channel_sample(uint8_t channel)
{/* 配置规则通道采集*/adc_regular_channel_config(ADC0, 0U, channel, ADC_SAMPLETIME_7POINT5);/* 软件触发使能 */adc_software_trigger_enable(ADC0, ADC_REGULAR_CHANNEL);/* 等待采样完成 */while(!adc_flag_get(ADC0, ADC_FLAG_EOC));/* 清除标志 */adc_flag_clear(ADC0, ADC_FLAG_EOC);/* 读取ADC采样值*/return (adc_regular_data_read(ADC0));
}

5.测试函数

void adc_test()
{int adc_value[4];rcu_config_adc();gpio_config_adc();adc_config();while(1){adc_value[0] = adc_channel_sample(ADC_CHANNEL_1);adc_value[1] = adc_channel_sample(ADC_CHANNEL_2);adc_value[2] = adc_channel_sample(ADC_CHANNEL_3);adc_value[3] = adc_channel_sample(ADC_CHANNEL_4);printf("%d %d %d %d \r\n",adc_value[0],adc_value[1],adc_value[2],adc_value[3]);}}

6. 测试结论

15. GD32F103C8T6入门教程-adc单通道轮训采集相关推荐

  1. 20. GD32F103C8T6入门教程-adc使用外部中断IT11触发启动adc规则通道,使用外中断IT15触发注入组

    adc 使用教程6-使用外部中断IT11触发启动adc规则通道,使用外中断IT15触发注入组 ADC支持18个多路通道,可以把转换组织成两组:一个规则组通道和一个注入组通道 规则组,可以按照特定的序列 ...

  2. 17. GD32F103C8T6入门教程-adc 使用教程2-dma+连续扫描方式采集数据++dma中断通知

    adc 使用教程3-dma方式采集数据+dma中断通知 adc 的扫描模式就是把配置了规则或注入通道按照配置的顺序采集一轮 adc 的连续转换模式就是把配置了规则或注入通道按照配置的顺序采集N轮 1. ...

  3. 16. GD32F103C8T6入门教程-adc 使用教程2-dma+连续扫描方式采集数据

    adc 使用教程2-dma+连续扫描方式采集数据 adc 的扫描模式就是把配置了规则或注入通道按照配置的顺序采集一轮 adc 的连续转换模式就是把配置了规则或注入通道按照配置的顺序采集N轮 1.时钟配 ...

  4. 19. GD32F103C8T6入门教程-adc使用教程6-外部中断线11触发adc0

    adc 使用教程6-外部中断线11触发adc0 使用外部中断线11 触发ADC开始采集数据,PA11 gpio 1.初始化时钟和定义全局变量 /*保存ADC值*/ uint32_t adc_value ...

  5. 【STM32】STM32CUBEMX + ADC(单通道,双通道DMA)

    STM32CUBEMX + ADC(单通道,双通道DMA) 案例应用 :使用ADC采集电压(单通道.单通道+DMA.双通道+DMA),并利用串口打印采集转换后的电压值 1.工具 IAR STM32CU ...

  6. STM32 ADC单通道与多通道_DMA学习笔记

    转自:https://blog.csdn.net/dmfylb/article/details/72802690 第一部分  ADC单路采集 下面我们将 PC0引脚配置成 AD1的通道10为例进行讲解 ...

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

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

  8. 【STM32多路温控—第六章】ADC单通道电流检测处理/晶振处理

    1. 时钟配置: 1.1 Crystal/Ceramic Resonator(晶体/陶瓷晶振) 1.2 BYPASS Clock Source(旁路时钟) YPASS Clock Source(旁路时 ...

  9. 18. GD32F103C8T6入门教程-adc-使用教程5-定时器TIM2更新事件触发adc0

    adc 使用教程5-定时器TIM2更新事件触发adc0 但是本实验出现了一个异常,单片机大概路出现更新事件没有启动ADC转换,可是没有找到处理办法,但是定时器的是正常工作LED灯闪烁 1.使能各种时钟 ...

最新文章

  1. 多模态任务新蓝海:视觉语言导航最新进展
  2. oracle中将number类型毫秒值转为时间类型
  3. oracle 触发器 upsert,如何使SQLAlchemy insert与Postgres多处理proof upsert触发器一起工作?...
  4. 【设计模式系列】行为型模式之Mediator模式
  5. 非常实用的word文本括号匹配是否正确的code,可按照此思路扩展到python处理大批量文本文件的检错中,非常实用!!!
  6. xtragrid 某个值 查找_二分查找(下):如何快速定位IP对应的省份地址?
  7. list选取多个元素 python_python基础篇:list列表的操作大盘点
  8. aes ios php,AES算法在PHP和Android和iOS上有所不同
  9. Spring源码下载地址
  10. Centos7 小事件:安装微信
  11. 计算流体力学c语言教程,计算流体力学教程
  12. 每日一練06:javascript原生拖拽写的日食
  13. 获取设备Mac地址和IP地址
  14. ipvs 导致syn 重传问题
  15. ps打开图片的三种方式 同步部分基本操作方式
  16. 微信5 不能点开朋友圈的链接-思科路由器
  17. 银行定期存款利息明细表一览
  18. 《认知觉醒》-潜意识
  19. 我的自白 —— 未来的期待
  20. Feign整合Sentinel实现容错

热门文章

  1. odbc如何连oracle数据库,不安装Oracle如何连数据库(odbc驱动)
  2. 自定义oracle异常,详解Oracle自定义异常示例
  3. java设计模式观察者模式吗_Java设计模式之观察者模式原理与用法详解
  4. 缺失值填充6——拉格朗日插值法填充序列缺失值
  5. windows python库安装包下载网站
  6. 发布python项目到pypi,以便供他人用pip install安装
  7. sklearn 线性回归
  8. 支持多协议多服务的服务器设计和实现的步骤,基于多协议的人工影响天气接入服务器设计与实现...
  9. keil c语言 位域,联合体位域在keil c遇到的问题怎样解决?
  10. MATLAB学习(4)——min