15. GD32F103C8T6入门教程-adc单通道轮训采集
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单通道轮训采集相关推荐
- 20. GD32F103C8T6入门教程-adc使用外部中断IT11触发启动adc规则通道,使用外中断IT15触发注入组
adc 使用教程6-使用外部中断IT11触发启动adc规则通道,使用外中断IT15触发注入组 ADC支持18个多路通道,可以把转换组织成两组:一个规则组通道和一个注入组通道 规则组,可以按照特定的序列 ...
- 17. GD32F103C8T6入门教程-adc 使用教程2-dma+连续扫描方式采集数据++dma中断通知
adc 使用教程3-dma方式采集数据+dma中断通知 adc 的扫描模式就是把配置了规则或注入通道按照配置的顺序采集一轮 adc 的连续转换模式就是把配置了规则或注入通道按照配置的顺序采集N轮 1. ...
- 16. GD32F103C8T6入门教程-adc 使用教程2-dma+连续扫描方式采集数据
adc 使用教程2-dma+连续扫描方式采集数据 adc 的扫描模式就是把配置了规则或注入通道按照配置的顺序采集一轮 adc 的连续转换模式就是把配置了规则或注入通道按照配置的顺序采集N轮 1.时钟配 ...
- 19. GD32F103C8T6入门教程-adc使用教程6-外部中断线11触发adc0
adc 使用教程6-外部中断线11触发adc0 使用外部中断线11 触发ADC开始采集数据,PA11 gpio 1.初始化时钟和定义全局变量 /*保存ADC值*/ uint32_t adc_value ...
- 【STM32】STM32CUBEMX + ADC(单通道,双通道DMA)
STM32CUBEMX + ADC(单通道,双通道DMA) 案例应用 :使用ADC采集电压(单通道.单通道+DMA.双通道+DMA),并利用串口打印采集转换后的电压值 1.工具 IAR STM32CU ...
- STM32 ADC单通道与多通道_DMA学习笔记
转自:https://blog.csdn.net/dmfylb/article/details/72802690 第一部分 ADC单路采集 下面我们将 PC0引脚配置成 AD1的通道10为例进行讲解 ...
- STM-32:ADC模数转换器—ADC单通道转换/ADC多通道转换
目录 一.ADC 模数转换器 1.1ADC简介 1.2 逐次逼近型ADC工作原理 1.3STM32中的ADC基本结构 1.4STM32中ADC的输入通道 1.5STM32中的ADC的四种转换模式 1. ...
- 【STM32多路温控—第六章】ADC单通道电流检测处理/晶振处理
1. 时钟配置: 1.1 Crystal/Ceramic Resonator(晶体/陶瓷晶振) 1.2 BYPASS Clock Source(旁路时钟) YPASS Clock Source(旁路时 ...
- 18. GD32F103C8T6入门教程-adc-使用教程5-定时器TIM2更新事件触发adc0
adc 使用教程5-定时器TIM2更新事件触发adc0 但是本实验出现了一个异常,单片机大概路出现更新事件没有启动ADC转换,可是没有找到处理办法,但是定时器的是正常工作LED灯闪烁 1.使能各种时钟 ...
最新文章
- 多模态任务新蓝海:视觉语言导航最新进展
- oracle中将number类型毫秒值转为时间类型
- oracle 触发器 upsert,如何使SQLAlchemy insert与Postgres多处理proof upsert触发器一起工作?...
- 【设计模式系列】行为型模式之Mediator模式
- 非常实用的word文本括号匹配是否正确的code,可按照此思路扩展到python处理大批量文本文件的检错中,非常实用!!!
- xtragrid 某个值 查找_二分查找(下):如何快速定位IP对应的省份地址?
- list选取多个元素 python_python基础篇:list列表的操作大盘点
- aes ios php,AES算法在PHP和Android和iOS上有所不同
- Spring源码下载地址
- Centos7 小事件:安装微信
- 计算流体力学c语言教程,计算流体力学教程
- 每日一練06:javascript原生拖拽写的日食
- 获取设备Mac地址和IP地址
- ipvs 导致syn 重传问题
- ps打开图片的三种方式 同步部分基本操作方式
- 微信5 不能点开朋友圈的链接-思科路由器
- 银行定期存款利息明细表一览
- 《认知觉醒》-潜意识
- 我的自白 —— 未来的期待
- Feign整合Sentinel实现容错
热门文章
- odbc如何连oracle数据库,不安装Oracle如何连数据库(odbc驱动)
- 自定义oracle异常,详解Oracle自定义异常示例
- java设计模式观察者模式吗_Java设计模式之观察者模式原理与用法详解
- 缺失值填充6——拉格朗日插值法填充序列缺失值
- windows python库安装包下载网站
- 发布python项目到pypi,以便供他人用pip install安装
- sklearn 线性回归
- 支持多协议多服务的服务器设计和实现的步骤,基于多协议的人工影响天气接入服务器设计与实现...
- keil c语言 位域,联合体位域在keil c遇到的问题怎样解决?
- MATLAB学习(4)——min