单片机/MCUwilliam hill官网
直播中

刘方南

12年用户 232经验值
擅长:可编程逻辑 模拟技术 测量仪表 接口/总线/驱动 控制/MCU
私信 关注
[讨论]

【敏矽微ME32G070开发板免费体验】之开发板资源>ADC测试

接上一节,我们已经知道开发板开放程度很高,且硬件上对ADC所有通道做了滤波电容的预留设计,接下来咱们即对ADC进行基本测试。

ADC简述
阅读数据手册可知(中文版对我很友好),ME32-MCU 是自带12位AD功能,即当检测3.3V电压时,最大分辨率可达3.3/(2^12)=0.0008V,即可最小检测0.8mV的电压值。特性内容如下:
ADC.png

A/D 准确度测试
1.为了快速上手,咱们使用原厂提供给的工程示例来修改做测试。
基本思路为使用ADC0通道测试一个已知的电压,通过串口打印的数据来看准确性。

adc2.png

2.硬件上,通过给开发板加上两个短路帽即可将CH340与单片机的串口1接通,如图:
duanlu.jpg

2-1为了防止干扰,咱们给开发板AD0通道预留的电容位置给加上一个电容:
dianr.png

2-2测试电压的对象,选中了开办板上的LED电源指示灯,因为它正好是LED侧接地,相当于测试LED两端的电压即可。测试时,将AD0通道使用杜邦线怼在LED上即可!
led2.png
dbx.png

2-3咱们使用万用表实测一下两端电压待会儿用于比对,得到两端电压为1.852V,单片机供电电压为3.314V:
shice.jpg

3.Keil双击打开工程文件,来到主界面;找到Demo.c文件,在main函数中即可看到熟悉的配置;
adc3.png

程序中:
1.PA0_INIT (PA0_ADC_IN0);-->首先初始化IO口,配置ADC0~7通道。

2.ADC_Init(1000000,INTERNALVDDGND);-->然后对ADC配置进行初始化速度为最大的1Mhz,同时指定基准电压为VDD供电电压。

3.ADC_SetTrigger(ADC_START_BY_SOFTWAER,0);-->触发方式为软件触发,且为上升沿有效。

4.ADC_SetupChannels(AD0|AD1|AD2|AD3|AD4|AD5|AD6|ADx,TRIGGERMODE);-->选定ADC通道0--7,同样为软件触发模式。

5.PA2_INIT(PA2_UART1_TX);PA3_INIT(PA3_UART1_RX);-->初始化一个串口,便于打印调试信息;

6.UART_Open(UART1,115200,UART_NO_PARITY,UART_TRIGGER_LEVEL_1_BYTE);-->配置串口为115200波特率

以上即完成了所有初始化准备工作,通过引入“stdio.h”头文件,咱们即可使用Sprintf函数对数据格式化;
然后通过获取AD0通道的值进行数据转换,用串口打印出来!
ADC4.png

7.将程序编译下载,使用串口助手查看数据,如图可知ADC返回的数据未做滤波算法的时候,数据与实测值非常吻合!
ck.png

更多回帖

发帖
×
20
完善资料,
赚取积分