0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

瑞萨RA系列FSP库开发实战指南之ADC电位器电压采集实验

瑞萨嵌入式小百科 来源:野火电子 2026-04-08 14:41 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

25.6

实验:电位器电压采集

25.6.1

硬件设计

野火启明6M5开发板的ADC电位器电路图如下图所示。

ba220030-2f12-11f1-90a1-92fbcf53809c.png

点击可查看大图

野火启明4M2开发板的ADC电位器电路图如下图所示。

ba78688a-2f12-11f1-90a1-92fbcf53809c.png

点击可查看大图

野火启明2L1开发板的ADC电位器电路图如下图所示。

bace1da2-2f12-11f1-90a1-92fbcf53809c.png

点击可查看大图

可以看到,三块开发板板载的电位器都是连接到P000引脚,P000引脚可以连接到MCU内部的ADC外设,从而对电位器输入的模拟信号进行采集。

表3:ADC引脚

bb24e812-2f12-11f1-90a1-92fbcf53809c.png

25.6.2

软件设计

25.6.2.1

新建工程

对于e2studio开发环境:拷贝一份我们之前的e2s工程“19_UART_Receive_Send”,然后将工程文件夹重命名为“25_ADC”,最后再将它导入到我们的e2studio工作空间中。

对于Keil开发环境:拷贝一份我们之前的Keil工程“19_UART_Receive_Send”,然后将工程文件夹重命名为“25_ADC”,并进入该文件夹里面双击Keil工程文件,打开该工程。

工程新建好之后,在工程根目录的“src”文件夹下面新建“key”文件夹,再进入“key”文件夹里面新建源文件和头文件:“bsp_adc.c”和“bsp_adc.h”。工程文件结构如下。

列表1:文件结构

左右滑动查看完整内容

25_ADC
├─ ......
└─src
├─ led
│ ├─ bsp_led.c
│ └─ bsp_led.h
├─ debug_uart
│ ├─ bsp_debug_uart.c
│ └─ bsp_debug_uart.h
├─ adc
│ ├─ bsp_adc.c
│ └─ bsp_adc.h
└─ hal_entry.c

25.6.2.2

FSP配置

打开该工程的FSP配置界面进行配置。

首先依次点击“Stacks”->“Pins”->“Peripherals”->“ADC0”来配置通道AN000对应的引脚为P000。如下图所示。

bbd4d7fe-2f12-11f1-90a1-92fbcf53809c.png

点击可查看大图

然后依次点击“Stacks”->“New Stack”->“Analog”->“ADC (r_adc)”来配置ADC模块。如下图所示。

bc2cdb20-2f12-11f1-90a1-92fbcf53809c.png

点击可查看大图

ADC的属性配置:

bc89a8e6-2f12-11f1-90a1-92fbcf53809c.png

点击可查看大图

表4:ADC属性介绍

bce6b1a8-2f12-11f1-90a1-92fbcf53809c.png

点击可查看大图

配置完成之后可以按下快捷键“Ctrl+S”保存,最后点右上角的“Generate Project Content”按钮,让软件自动生成配置代码即可。

25.6.2.3

ADC初始化函数

列表2:代码清单25‑1 ADC初始化函数

左右滑动查看完整内容

voidADC_Init(void)
{
fsp_err_t err;
err =R_ADC_Open(&g_adc0_ctrl, &g_adc0_cfg);
err =R_ADC_ScanCfg(&g_adc0_ctrl, &g_adc0_channel_cfg);
assert(FSP_SUCCESS== err);
}

R_ADC_Open()为整个外设设置操作模式、触发源、中断优先级和配置。如果启用了中断,该函数将注册一个回调函数指针,以便在扫描完成时通知用户。

R_ADC_ScanCfg()配置ADC扫描参数。通道特定设置是在这个函数中设置的。

25.6.2.4

ADC中断回调函数

列表3:代码清单25‑2 ADC中断回调函数

左右滑动查看完整内容

//ADC 转换完成标志位
volatilebool scan_complete_flag =false;
voidadc_callback(adc_callback_args_t * p_args)
{
FSP_PARAMETER_NOT_USED(p_args);
scan_complete_flag =true;
}

在FSP配置页面注册回调函数以及优先级,我们就可以使用来自ADC的中断回调函数了。

在每种模式中,模拟通道按通道数的升序进行转换,然后扫描温度传感器和电压传感器(如果它们也被勾选了的话)。每一种扫描模式都有着它的优点和缺点,但具体使用什么模式进行ADC转换,就需要通过我们的项目的需求需要什么样的效果来决定。

我们通过ADC的中断回调函数来判断ADC是否转换完成。我们需要定义了一个布尔类型的数据scan_complete_flag来当做ADC读取完成的标志位。当没有转换完成的时候scan_complete_flag的值一直为false,单ADC触发中断的时候将scan_complete_flag的值变为true。

25.6.2.5

如果未启用中断

如果未启用中断,则可使用R_ADC_StatusGet()API用于轮询ADC以确定扫描何时完成。读取API函数用于访问转换后的ADC结果。这适用于支持校准的MCU的普通扫描和校准扫描。

25.6.2.6

ADC读取转换结果函数

ADC读取思路,我们在这里调用R_ADC_ScanStart触发相应的adc通道转换,当ADC转换完成之后会将scan_complete_flag标志位变为true。当我们判断到标志位变为true后我们使用R_ADC_Read()或R_ADC_Read32()读取转换完成的数值。

列表4:代码清单25‑3 ADC读取转换结果函数

左右滑动查看完整内容

/* 进行ADC 采集,读取ADC 数据并转换结果*/
doubleRead_ADC_Voltage_Value(void)
{
uint16_tadc_data;
doublea0;
(void)R_ADC_ScanStart(&g_adc0_ctrl);
while(!scan_complete_flag)//等待转换完成标志
{
;
}
scan_complete_flag =false;//重新清除标志位
/* 读取通道0 数据*/
R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_0, &adc_data);
/* ADC 原始数据转换为电压值(ADC 参考电压为3.3V) */
a0 = (double)(adc_data*3.3/4095);
returna0;
}

R_ADC_ScanStart()启动软件扫描或启用扫描的硬件触发器,具体取决于触发器在R_ADC_Open调用中的配置方式。如果该单元被配置为ELC或外部硬件触发,那么该功能允许触发信号到达ADC单元。该函数不能控制触发器本身的生成。如果该单元被配置为软件触发,则该功能启动软件触发扫描。

R_ADC_Read()从单通道或传感器寄存器读取转换结果,返回的数据为uint16_t型。

R_ADC_Read32()从单通道或传感器寄存器读取转换结果,返回的数据为uint32_t型。

25.6.2.7

hal_entry入口函数

列表5:代码清单25‑4 hal_entry入口函数

左右滑动查看完整内容

voidhal_entry(void)
{
LED_Init();// LED 初始化
Debug_UART4_Init();// SCI4 UART 调试串口初始化
/* ADC 初始化*/
ADC_Init();
printf("这是一个读取电位器ADC 电压转换值的例程
");
printf("打开串口助手查看ADC 转换结果,旋钮电位器,可以看到ADC 值在一定范围之内发生
变化
");
printf("开始读取ADC 转换值:
");
while(1)
{
printf("a0 = %f
",Read_ADC_Voltage_Value());
R_BSP_SoftwareDelay(500,BSP_DELAY_UNITS_MILLISECONDS);//大概0.5 秒钟
读取一次
LED1_TOGGLE;
}
#ifBSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}

25.6.3

下载验证

USBTYPE-C线连接开发板“USB TO UART”接口电脑,在电脑端打开串口调试助手,把编译好的程序下载到开发板。在串口调试助手可看到从ADC引脚读出的模拟电压数值。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电位器
    +关注

    关注

    14

    文章

    1031

    浏览量

    69467
  • adc
    adc
    +关注

    关注

    100

    文章

    7943

    浏览量

    556860
  • 瑞萨
    +关注

    关注

    38

    文章

    22516

    浏览量

    91164
  • 电压采集
    +关注

    关注

    2

    文章

    26

    浏览量

    14743

原文标题:ADC电压值转换&实验:电位器电压采集——瑞萨RA系列FSP库开发实战指南(93)

文章出处:【微信号:瑞萨嵌入式小百科,微信公众号:瑞萨嵌入式小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RA系列FSP开发实战指南I2C读写EEPROM实验

    使用官方提供的FPS进行编程,官方提供的FPS具有方便、快捷、简洁的特性。
    的头像 发表于 01-27 10:02 3746次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>库</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b><b class='flag-5'>指南</b><b class='flag-5'>之</b>I2C读写EEPROM<b class='flag-5'>实验</b>

    RA MCU众测宝典 | ADC/DACRA2L1】DAC电压输出及ADC电压采集实验

    “RAMCU众测宝典”ADC/DAC通信专题上线啦!咱们接下来要解锁嵌入式开发中“连接模拟与数字世界”的关键技能——ADC/DAC专题。这次,
    的头像 发表于 01-20 18:43 5727次阅读
    <b class='flag-5'>RA</b> MCU众测宝典 | <b class='flag-5'>ADC</b>/DAC<b class='flag-5'>之</b>【<b class='flag-5'>RA</b>2L1】DAC<b class='flag-5'>电压</b>输出及<b class='flag-5'>ADC</b><b class='flag-5'>电压</b><b class='flag-5'>采集</b><b class='flag-5'>实验</b>

    e2studio(1)----芯片搭建FSP环境

    视频教学 样品申请 请勿添加外链 e2studio软件 e2studio是的集成开发环境,FSP 提供了众多可提高效率的工具,用于开发
    发表于 09-30 15:28

    RA6E2地奇星开发板试用】DAC 输出指定电压ADC 电压检测

    ); 代码中 dac 的值为 0 ~ 4095,对应 0 ~ 3.3v 电压ADC 电压输入】
    发表于 12-19 18:30

    RA6E2地奇星开发板试用】开发板介绍及环境搭建

    2.0 Full-Speed、CAN FD、I3C、Quad SPI、HDMI CEC、12-bit ADC/DAC 等丰富外设 二、开发环境搭建(推荐 e² studio + FSP
    发表于 12-22 00:40

    RA4系列开发板体验】开发环境搭建和新手点灯指南

    RA4系列开发板体验】开发环境搭建和新手点灯指南
    发表于 11-24 22:54

    RA4系列开发板体验】ADC电压测量

    RA4M2集成了● 12-bit A/D Converter (ADC12)● 12-bit 及温度传感(TSN)。可以8位、10位、
    发表于 12-02 07:00

    RA4系列开发板体验】6. ADC测量摇杆模块偏移量

    之前发帖:【RA4系列开发板体验】1. 新建工程+按键控制LED【
    发表于 12-09 21:37

    RA4系列开发板体验】10. 我的试用总结

    KEIL下UART实现printf与scanf重定向【RA4系列开发板体验】4. PWM驱动LED【
    发表于 12-10 22:34

    RA4系列开发板体验】体验过程

    拿到板子之后,做了几个实验过程,过程如下:1、在好奇心驱动下,逐步接触;参照网上的实例,学习开发环境一、开箱验货二、搭建环境参考“ 【
    发表于 12-18 16:20

    【野火启明6M5开发板体验】开箱+认识开发板+资料

    按键检测29. WiFi——模块通讯板尺寸:3、资料:*附件:[野火EmbedFire]《RA系列FSP
    发表于 12-20 23:28

    【有奖直播预报名】电子RA系列产品开发工具FSP4.0.0新特性介绍

    为使用电子RA系列ARM微控制的嵌入式系统设计提供简单易用且可扩展的高质量软件。 直播主题
    的头像 发表于 11-22 12:20 1684次阅读

    【视频教程】RA单片机FSP开发(3)FSP架构-解释Blinky架构[上]

    干货分享 前篇回顾 【视频教程】RA单片机FSP开发(1)环境搭建(带RASC) 【视频教程】
    的头像 发表于 12-06 12:15 2127次阅读

    使用e² studio FSP基于RA2E1定时配置PWM输出

    使用e² studio FSP基于RA2E1定时配置PWM输出
    的头像 发表于 08-01 00:13 2225次阅读
    使用<b class='flag-5'>瑞</b><b class='flag-5'>萨</b>e² studio <b class='flag-5'>FSP</b>基于<b class='flag-5'>RA</b>2E1定时<b class='flag-5'>器</b>配置PWM输出

    电子RA系列微控制的可扩展性强的配置软件包 (FSP)安装下载与使用指南

    电子RA系列微控制的可扩展性强的配置软件包 (FSP)安装下载与使用
    的头像 发表于 06-11 17:21 2201次阅读