当前文档版本为 v0.6.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

adc_sw_trigger例程

1 功能概述

本代码示例主要演示ADC外设的软件触发ADC采样的功能,通过周期性软件触发ADC采样,并通过串口助手打印ADC的采样值。

2 环境要求

  • Board: PAN262xb1_evb

  • Micro USB线两2根,一根用于程序下载,一根用于查看串口打印Log

  • 将 J15(P3_3) 开关拔至ADC侧,将P3_3与电位器相连

  • 将 J19(P3_1) 开关拔至TX侧,将P3_1与uart的TX引脚相连

3 编译和烧录

例程位置:pan262x_dk/01_SDK/example_basic/adc/adc_sw_trigger

打开目录下keil下的adc_sw_trigger.uvprojx工程,编译整个代码工程。

4 演示说明

根据环境要求一节的介绍,正确连接 EVB 开发板的跳线,编译、下载:

  1. 在电脑上打开串口调试工具,串口参数:115200/8bit/1stop/无校验

  2. 观察串口打印的内容,看看是否有Vdd:3.298861, Vch:2.552456.类似格式信息输出

  3. 理论上大约每隔500ms,串口会打印一条采样数据

串口输出信息如下:

adc sw trigger test.
Vdd:3.298861, Vch:2.552456.
Vdd:3.296970, Vch:2.552456.
Vdd:3.297970, Vch:2.554128.
Vdd:3.298861, Vch:2.552456.
Vdd:3.298861, Vch:2.552456.
Vdd:3.298861, Vch:2.552456.
Vdd:3.298861, Vch:2.552456.
Vdd:3.296970, Vch:2.554128.
Vdd:3.298861, Vch:2.552456.
Vdd:3.297082, Vch:2.554128.
Vdd:3.295970, Vch:2.552456.
Vdd:3.298970, Vch:2.554128.
Vdd:3.298861, Vch:2.553242.
Vdd:3.298861, Vch:2.552456.
Vdd:3.298861, Vch:2.553242.

注:Vdd为芯片的供电电源电压,约3.3V;Vch为3通道的采样电压;

5 开发说明

通过调用 adc.c 的ADC_Init()、UsrGetChannelVolt()、UsrGetVddVolt()等函数接口来实现ADC的软件触发采样功能。

/** Config ADC params */
ADC_Init(ADC_CH3, 0x0020, ENABLE);

/**
* @brief  This function get external channel in voltage.
* @param  Channel: Specifies the source channel.
*          This parameter can be the following values:
*           @arg ADC_CH0
*           @arg ADC_CH1
*           @arg ADC_CH2
*           @arg ADC_CH3
*           @arg ADC_CH4
*           @arg ADC_CH5
*           @arg ADC_CH6
*           @arg ADC_CH7
* @param  SampleTimes: Specifies the ADC sample times.
*           1 <= SampleTimes <= 8;
* @retval External in voltage.
*/
float UsrGetChannelVolt(u8 Channel, u8 SampleTimes)

/**
* @brief  This function get power supply voltage.
* @param  SampleTimes: Specifies the ADC sample times.
*          SampleTimes > 0;
* @retval Power supply voltage.
*/
float UsrGetVddVolt(u8 SampleTimes)

6 RAM/Flash资源使用情况

Program Size: data=49.1 xdata=18 const=48 code=5018