【南京中科微CSM32RV20开发板试用体验】+3.ADC基本功能

描述

本文来源电子发烧友社区,作者:川楠, 帖子地址:https://bbs.elecfans.com/jishu_2245153_1_1.html

前言

大家好。
首先,感谢南京中科微提供的CSM32RV20开发板,同时也感谢发烧友提供的试用平台。
这次测试的是ADC外设,测试目标:使用ADC,采集电位器上的电压变化。

代码编程
还是一样的,按照官方的教程,建立DEMO程序,查看main.c文件。
南京中科微

查看代码,官方初始化用的是PA4引脚作为模拟输入。
南京中科微

然后使能一下串口,将ADC采集的数据通过串口发送出来。

具体代码如下:


  1. int main(void)
  2. {
  3.  
  4.     ///----System Init ---------------------------------------------------------------------------------------------
  5.     CLIC_Init();//系统中断配置
  6.     System_Clock_Init();//系统时钟初始化
  7.  
  8.     ///---- Chapter 11 ADC Test Init -------------------------------------------------------------------------------------
  9.  
  10.     uint32_t adc_result;
  11.     uint32_t adc_pack[16];
  12.     uint32_t adc_sum;
  13.     uint32_t adc_count;
  14.     uint32_t adc_avr;
  15.     uint32_t voltage_avr;
  16.  
  17.     ADC_Init_case1();//内部基准,测PA4
  18.     UART_Init_case1(UART1);//非中断模式
  19.  
  20.     ee_printf("nHello CSM32RV20:");
  21.  
  22. while(1)
  23. {
  24.         Delay32M_ms(500);
  25.         adc_result = ADC_Conversion();//适用于非中断模式
  26.     adc_pack[(adc_count++)&0xf] = adc_result;
  27.     adc_sum=0;
  28.         for(uint8_t i=0;i<16;i++)
  29.         {
  30.             adc_sum += adc_pack[i];
  31.         }
  32.         adc_avr = adc_sum/16;
  33.         printf("val:%d  avr:%d   %d.%dmV   %d.%dmVrn",adc_result,adc_avr,(adc_result*4*12000/32768)/10,(adc_result*4*12000/32768)%10,(adc_avr*4*12000/32768)/10,(adc_avr*4*12000/32768)%10);
  34. }
  35.  
  36.   return 0;
  37. }
  38.  
复制代码



程序编译下载,将电位器接到PA4引脚,我的接法如下:
南京中科微


然后设备通电,串口显示内容:
电路板上开关打到5V的位置
南京中科微

将电路板的电源打到3.3V
南京中科微

通过分析源码,第一组数据是当前ADC数值, AVR16次数据平均,然后是根据当前ADC转化为电压值,最后一组是16ADC平均值转化的电压值。
仔细阅读数据手册,输入电压缩小4倍,然后送给ADC采集,基准电压采用的是1.214VADC的分辨率为15位,最大位32768
南京中科微

这样,我们反过来验算一下,输入3.3V,对应的ADC是多少。
(3.3/4)/1.214*32786=22268
基本上与22532差距不大。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分