全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 处理器/DSP >

【NuMaker-M2354试用】_adc测试分享

时间:2023-08-02 17:23

人气:

作者:admin

标签: GND  ADC驱动器  烧录器  模拟 

导读:模拟数字转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。...

1 ADC简介

模拟数字转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。

通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。

2 测评硬件

NuMaker-M2354 开发板的板载资源很丰富,IO接口都已引出,而且板载自带烧录器。本次测评,我测试了ADC0 CH6的ADC功能。

3 快速上手

按照官方文档进行操作,我们就能顺利的将官方提供的测试程序跑起来;

4 工程裁剪

官方提供的代码将所有的功能都开启了,而本次我需要测试的仅仅是ADC,所以我们还需要对工程进行裁剪:

step1:
使用ENV,进入./rt-thread/bsp/nuvoton/numaker-m2354 目录

step2:
执行以下代码:

menuconfig

step3:

1.jpg

在 Hardware Drivers config -> On chip Peripheral Drivers下将无关项取消

1.jpg

1 ADC简介
模拟数字转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。

2 测评硬件

NuMaker-M2354 开发板的板载资源很丰富,IO接口都已引出,而且板载自带烧录器。本次测评,我测试了ADC0 CH6的ADC功能。

3 快速上手
RT-Thread已经很贴心的将新唐 NuMaker-M2354这块开发板加入RT-Thread官方的文档中心:新唐NuMaker-M2354
按照官方文档进行操作,我们就能顺利的将官方提供的测试程序跑起来;

4 工程裁剪
官方提供的代码将所有的功能都开启了,而本次我需要测试的仅仅是ADC,所以我们还需要对工程进行裁剪:

step1:
使用ENV,进入./rt-thread/bsp/nuvoton/numaker-m2354 目录

step2:
执行以下代码:

menuconfig
step3:

在 Hardware Drivers config -> On chip Peripheral Drivers下将无关项取消

step4
然后执行以下代码进行构建工程,因为本人使用的是keil5进行开发:

scans --target=mdk5 -s

5 代码开发

打开工程文件,执行编译

1.jpg

没有报错,然后我们创建一个adc_test.c文件,编写以下代码:

#include
#include
static int adc_test(int argc,char *argv[])
{
rt_adc_device_t adc_device;
rt_uint32_t adc_value, voltage;
rt_err_t result = RT_EOK;
//!<查找设备
adc_device = (rt_adc_device_t)rt_device_find("eadc0");
if(adc_device == RT_NULL)
{
rt_kprintf("adc_test can't find eadc0!n");
return RT_ERROR;
}
//!<使能设备
result = rt_adc_enable(adc_device, atoi(argv[1]));
//!<读取ADC值
adc_value = rt_adc_read(adc_device, atoi(argv[1]));
//!<打印ADC值
rt_kprintf("the adc_value is :%d n", adc_value);
//!<对ADC值进行转换
voltage = adc_value * 300 / ( 1 << 12 );
//!<打印转换后的ADC值
rt_kprintf("the voltage is :%d.%02d n", voltage / 100, voltage % 100);
//!<释放设备
result = rt_adc_disable(adc_device, atoi(argv[1]));
return result;
}
//!<注册到 msh 中
MSH_CMD_EXPORT(adc_test,adc test);

编译后,烧录到板块上,使用串口工具

1.jpg

输入adc_test 1:

msh >adc_test 1
the adc_value is :1
the voltage is :0.00
msh >

查看开发板的引脚图:

1.jpg

可以看到A5~A0对应的是ADC0_CH6~ADC0_CH11,我们使用杜邦线,将A5接到GND:

1.jpg

由于时间有限,只进行了简单测试,后续有时间再进行深入的测试。官方已经将ADC设备驱动写好,真正的拿来即用,降低了开发难度和开发成本。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信