3848|0

98

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【GD32F350开发分享九】单端输入ADC+定时器单次转换 [复制链接]

如果GD32F350能支持差分ADC就更好了,原因大家应该都知道
作品也快完成了,还在忙着写报告,估计要压点提交作品了

GD32F350芯片上的12 位 ADC 是一种采用逐次逼近方式的模拟数字转换器。它有 19 个多路复用通道, 可以测量来自 16 个外部通道, 2 个内部通道和电池电压(VBAT)通道的模拟信号。 模拟看门狗允许应用程序来检测输入电压是否超出用户设定的高低阈值。 每个通道的 A/D 转换可以配置成单次、连续、扫描或间断转换模式。 ADC 转换的结果可以按照左对齐或右对齐的方式存储在 16 位数据寄存器中。 片上的硬件过采样机制可以通过减少 MCU 的相关计算负担来提高性能。  

  1. void adc_config(void)
  2. {
  3.     /* ADC contineous function enable */
  4.     adc_special_function_config(ADC_CONTINUOUS_MODE, ENABLE);
  5.     /* ADC trigger config */
  6.     adc_external_trigger_source_config(ADC_REGULAR_CHANNEL, ADC_EXTTRIG_REGULAR_NONE);
  7.     /* ADC data alignment config */
  8.     adc_data_alignment_config(ADC_DATAALIGN_RIGHT);
  9.     /* ADC channel length config */
  10.     adc_channel_length_config(ADC_REGULAR_CHANNEL, 1);

  11.     /* ADC regular channel config */
  12.     adc_regular_channel_config(0, BOARD_ADC_CHANNEL, ADC_SAMPLETIME_239POINT5);
  13.     adc_external_trigger_config(ADC_REGULAR_CHANNEL, ENABLE);

  14.     /* ADC resolusion 12B */
  15.     adc_resolution_config(ADC_RESOLUTION_12B);
  16.    
  17.     /* enable ADC interface */
  18.     adc_enable();
  19.     /* ADC calibration and reset calibration */
  20.     adc_calibration_enable();
  21. }
复制代码

如代码所示,

(1)选择高性能12位分辨率

(2)选择模拟输入通道ADC channel11

(3)选择转换开始的触发方式:规则通道的外部触发

(4)选择转换模式:连续模式,连续转换所选择的输入通道

(5)选择数据寄存器可配置数据对齐方式为右对齐

(6)选择采样时间239.5周期

采样时间影响ADC的转换时间

ADC的转换时间 = 采样时间 +12.5周期


采样时间越久,精度越高,但是不能超过采样频率(采样间隔)。


用定时器定时采样频率,定时时间到,转换开始

定时器参考帖子



此帖出自GD32 MCU论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表