注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题

Justice_Gao的个人空间 http://home.eeworld.com.cn/space-uid-784175.html [收藏] [复制] [分享] [RSS]

日志

【GD32F350开发分享九】单端输入ADC+定时器单次转换

已有 71 次阅读2018-10-16 16:05 |个人分类:GD32系列学习

如果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周期


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


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

定时器参考帖子



本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2018-11-18 18:07 , Processed in 0.014938 second(s), 10 queries , Gzip On, MemCache On.

Powered by EEWORLD电子工程世界

© 2018 http://bbs.eeworld.com.cn/

返回顶部