1.基于芯片创建工程
2.
3.
4.
5.
#include <rtthread.h>
#include <rtdbg.h>
#include <rtdevice.h>
#include <board.h>
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#define ADC_DEV_NAME "adc3" /* ADC 设备名称 */
#define ADC_DEV_CHANNEL 6 /* ADC 通道 */
#define REFER_VOLTAGE 330 /* 参考电压 3.3V,数据精度乘以100保留2位小数*/
#define CONVERT_BITS (1 << 12) /* 转换位数为12位 */
int main(void)
{
rt_adc_device_t adc_dev;
rt_uint32_t value, vol;
adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME); /* 查找设备 */
if (adc_dev == RT_NULL)
{
rt_kprintf("adc sample run failed! can't find %s device!\n", ADC_DEV_NAME);
return RT_ERROR;
}
else {
rt_kprintf("find %s success!\n",ADC_DEV_NAME);
}
rt_adc_enable(adc_dev, ADC_DEV_CHANNEL);/* 使能设备 */
while (1)
{
/* 读取采样值 */
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL);
rt_kprintf("the value is :%d \n", value);
/* 转换为对应电压值 */
vol = value * REFER_VOLTAGE / CONVERT_BITS;
rt_kprintf("the voltage is :%d.%02d \n", vol / 100, vol % 100);
rt_thread_mdelay(500);
}
return RT_EOK;
}