Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread活动
瑞萨_RA6M4
RA6M4+RT-Thread 驱动ADC
发布于 2022-07-24 18:01:08 浏览:432
订阅该版
[tocm] # 前言 本文讲解如何使用RA6M4的ADC。 本文将使用ADC引脚P000。 # 上手 1. 需要先查看芯片手册,如下图,可以看到P000对应的ADC通道是AN000(ADC0)以及AN100(ADC1)。 ![4.png](https://oss-club.rt-thread.org/uploads/20220724/5fc1559f5cf4a56ad63c274870037939.png.webp "4.png") 2. 使用RA Smart Configurator配置ADC,先在stack中创建一个ADC。 ![1.png](https://oss-club.rt-thread.org/uploads/20220724/d56f52becb4cdfbec88722f05209a996.png "1.png") 3. 将P000修改为复用ADC ![2.png](https://oss-club.rt-thread.org/uploads/20220724/28649188f84ab527b5018bd91087d3ee.png "2.png") 4. 使能ADC0中的P000 ![2022-07-24_175423.png](https://oss-club.rt-thread.org/uploads/20220724/861dff17cdec94720906f4b46097865b.png "2022-07-24_175423.png") 5. 在RT-Thread Setting中配置使用ADC0 ![3.png](https://oss-club.rt-thread.org/uploads/20220724/1c02a4fce2b0bdc4c2ca47be1750b47e.png.webp "3.png") # 编写代码 编写代码用于读取ADC0 P000采集到的ADC数据。 ```c /* * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2022-06-19 Administrator the first version */ #include "app_pluse_sensor.h" #include
#include
#include "hal_data.h" #define ADC_DEV_NAME ("adc0") /* ADC 设备名称 */ #define ADC_DEV_CHANNEL (0U) /* ADC 通道 */ #define REFER_VOLTAGE (330U) /* 参考电压 3.3V,数据精度乘以100保留2位小数*/ #define CONVERT_BITS (1U << 12U) /* 转换位数为12位 */ static int adc_vol_sample(int argc, char *argv[]) { rt_adc_device_t adc_dev; rt_uint32_t value, vol; rt_err_t ret = RT_EOK; /* 查找设备 */ 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; } /* 使能设备 */ ret = rt_adc_enable(adc_dev, ADC_DEV_CHANNEL); /* 读取采样值 */ 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); /* 关闭通道 */ ret = rt_adc_disable(adc_dev, ADC_DEV_CHANNEL); return ret; } /* 导出到 msh 命令列表中 */ MSH_CMD_EXPORT(adc_vol_sample, adc voltage convert sample); ``` # 效果展示 结果如下: ![5.png](https://oss-club.rt-thread.org/uploads/20220724/36ea007d07ebb160676a62388e2f154d.png "5.png") # 后记 上述方式发现每次采集之前都需要先使能ADC才可以,是因为没有奖ADC转换模式设置为连续模式,默认是单次,修改为连续之后就可以一直采样了,不然每一次采样之前都需要先使能ADC,修改方式见下图: ![8.png](https://oss-club.rt-thread.org/uploads/20220724/26a3fb8389450c48795fccf2ad51f66c.png "8.png")
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
hehung
这家伙很懒,什么也没写!
文章
6
回答
0
被采纳
0
关注TA
发私信
相关文章
1
(苏州站)RT-Thread物联网开发者沙龙【已结束】
2
(成都站)RT-Thread物联网开发者沙龙
3
(深圳站)RT-Thread物联网开发者沙龙
4
(西安站)RT-Thread物联网开发者沙龙
5
成都站2018 RT-Thread开发者沙龙回顾及PPT下载
6
2018 RT-Thread物联网开发者沙龙(北京站)
7
2018 RT-Thread物联网开发者沙龙(南京站)
8
第十三届研电赛RT-Thread企业专项奖发布通知
9
RT-Thread应用作品征集大赛开始啦!
10
你的投票将决定RT-Thread官网应该优先准备的文档是哪些
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
YZRD
2
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部