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

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

3天内不再提示

瑞萨e2studio----ADC通过单次扫描多通道方式采样

RA生态工作室 2021-11-02 16:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

pYYBAGGA3i6Af0z4AABdWrtWoBM374.png

1.概述

本篇文章主要介绍如何使用e2studio对瑞萨单片机进行Adc通过单次扫描多通道方式采样。

2.硬件准备

首先需要准备一个开发板,这里我准备的是芯片型号 R7FA2L1AB2DFL 的开发板。

3.新建工程

16000776-2dec-11ec-aa30-dac502259ad0.png

4.工程模板

16754e82-2dec-11ec-aa30-dac502259ad0.png

5.保存工程路径

16e5803a-2dec-11ec-aa30-dac502259ad0.png

6.芯片配置

本文中使用R7FA2L1AB2DFL来进行演示。

1727724c-2dec-11ec-aa30-dac502259ad0.png

7

7.工程模板选择

17698984-2dec-11ec-aa30-dac502259ad0.png

8.ADC配置

点击Stacks->New Stack->Driver->Analog -> ADC Driver on r_adc。

179ca7e2-2dec-11ec-aa30-dac502259ad0.png

9.ADC属性配置

17d0650a-2dec-11ec-aa30-dac502259ad0.png

180922dc-2dec-11ec-aa30-dac502259ad0.png

10.R_ADC_Open()函数原型

18466f48-2dec-11ec-aa30-dac502259ad0.png

故可以用R_ADC_Open() 函数进行配置,开启和初始化ADC模式。

	/* Initializes the module. */
    err = R_ADC_Open(&g_adc0_ctrl, &g_adc0_cfg);
    /* Handle any errors. This function should be defined by the user. */
    assert(FSP_SUCCESS == err);

11.R_ADC_ScanCfg()函数原型

18840c0e-2dec-11ec-aa30-dac502259ad0.png

配置ADC扫描参数,赋能ADC通道。在此函数中设置通道特定设置。


	 /* Enable channels. */
    err = R_ADC_ScanCfg(&g_adc0_ctrl, &g_adc0_channel_cfg);
    assert(FSP_SUCCESS == err);

12.R_ADC_ScanStart()函数原型

18bef292-2dec-11ec-aa30-dac502259ad0.png

启动扫描,若设置为单次扫描,没扫描完一次都需要重新开启。

		/* Enable scan triggering from ELC events. */
        (void) R_ADC_ScanStart(&g_adc0_ctrl);

故可以用R_IOPORT_PinRead()函数进行读取IO口电平状态,该函数只能读取一个端口的电平。

bsp_io_level_t p_port_value_port_151;
R_IOPORT_PinRead(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_15, &p_port_value_port_151);

13. 回调函数adc_callback ()

每次扫描完之后都会进入回调函数中。

volatile bool scan_complete_flag = false;
void adc_callback (adc_callback_args_t * p_args)
{
    FSP_PARAMETER_NOT_USED(p_args);
    scan_complete_flag = true;
}

故需要在扫描时候在主程序中等待其扫描完毕。


	    scan_complete_flag = false;
        while (!scan_complete_flag)
        {
            /* Wait for callback to set flag. */
        }

14.R_ADC_Read()函数原型

18ed9a02-2dec-11ec-aa30-dac502259ad0.png

读取单个通道的ADC值。

		err =R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_0, &adc_data1);
        assert(FSP_SUCCESS == err);

        a1=(double)(adc_data1/4095.0)*3.3;

15.多通道设置

以读取通道0(P000)和通道1 (P010)为例子,通道配置如下。

191798ca-2dec-11ec-aa30-dac502259ad0.png

通道配置要注意通道数,配置错误可能会读取错误。

195862c4-2dec-11ec-aa30-dac502259ad0.png

16.代码

volatile bool scan_complete_flag = false;
void adc_callback (adc_callback_args_t * p_args)
{
    FSP_PARAMETER_NOT_USED(p_args);
    scan_complete_flag = true;
} 
void hal_entry(void)
{
    /* TODO: add your own code here */

    fsp_err_t err = FSP_SUCCESS;
    /* Initializes the module. */
    err = R_ADC_Open(&g_adc0_ctrl, &g_adc0_cfg);
    /* Handle any errors. This function should be defined by the user. */
    assert(FSP_SUCCESS == err);
 	/* Enable channels. */
    err = R_ADC_ScanCfg(&g_adc0_ctrl, &g_adc0_channel_cfg);
    assert(FSP_SUCCESS == err);

    double a0,a5;
    uint16_t adc_data1=0;
    uint16_t adc_data2=0;
    while(1)
    {

    /* Enable scan triggering from ELC events. */
           (void) R_ADC_ScanStart(&g_adc0_ctrl);
           scan_complete_flag = false;
           while (!scan_complete_flag)
           {
               /* Wait for callback to set flag. */
           }

           err =R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_0, &adc_data1);
           assert(FSP_SUCCESS == err);
           a0=(adc_data1/4095.0)*3.3;

           err =R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_5, &adc_data1);
           assert(FSP_SUCCESS == err);
           a5=(adc_data1/4095.0)*3.3;

           R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);
    }

	#if BSP_TZ_SECURE_BUILD
    /* Enter non-secure code */
    R_BSP_NonSecureEnter();
	#endif
}

17.视频教学

视频教学稍后会在B站官方账号更新,请留意B站视频更新~

198d40e8-2dec-11ec-aa30-dac502259ad0.jpg

原文标题:瑞萨e2studio----ADC通过单次扫描多通道方式采样

文章出处:【微信公众号:RA生态工作室】欢迎添加关注!文章转载请注明出处。

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

    关注

    147

    文章

    19211

    浏览量

    405047
  • ARM
    ARM
    +关注

    关注

    135

    文章

    9605

    浏览量

    394083
  • 嵌入式
    +关注

    关注

    5210

    文章

    20726

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RA2L1入门学习】光敏电阻ADC检测

    引脚,光敏传感器的Ao引脚连接开发板上的P000引脚。 四、实验 根据提供的e2studio----Adc通过
    发表于 05-09 14:56

    RA2L1入门学习】+ RA-Eco-RA2L1-V2.0开发板概览、环境搭建与TTL串口烧录点灯

    .pptx | 使用UART串口烧写程序到芯片.pptx | e2studio----Adc通过
    发表于 05-01 22:37

    【RA-Eco-RA2E1-V1.0开发板试用】概览、环境搭建与TTL串口烧录点灯

    |RA2L1_E1_LQFP48 TOUCH.pdf | +---PPT | 使用J-Link烧写程序到芯片.pptx | 使用UART串口烧写程序到
    发表于 01-31 22:10

    FPB-RA6E2试用】【FPB-RA6E2】 DAC-ADC 回环测试:基于 Zephyr RTOS 的模拟信号通路验证

    Zephyr ADC / DAC API 调试设备树 / pinctrl 校准 ADC / DAC 偏差 硬件 Bring-up 阶段测试 十一、 项目代码 *附件:fpb_ra6e2_adc_dac_app.zip 感谢电子
    发表于 01-16 15:22

    RL78/F22 MCU基于e2studio开发环境创建触摸应用样例工程

    RL78/F22 MCU基于e2studio开发环境创建触摸应用样例工程
    的头像 发表于 01-14 15:31 8751次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>RL78/F22 MCU基于<b class='flag-5'>e2studio</b>开发环境创建触摸应用样例工程

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

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

    RA6E2E2S软件安装过程,等待过程玩下97_e2 studio_ZGZZ

    ;amp;vd_source=7ab92f6a337b22fda39554fd6e70f01a 本报告旨在记录基于RA6E2 MCU评估板的初步开发体验。主要内容包括: 软件开发环
    发表于 12-01 22:42

    RA6E2ADC数据采集与数码管显示

    概述 项目简介 本报告基于RA6E2评估板,实现了一个完整的ADC数据采集与显示系统。通过板载ADC
    发表于 11-27 00:52

    RA6E2ADC、DAC 电压输入输出

    ); 代码中 dac 的值为 0 ~ 4095,对应 0 ~ 3.3v 电压 【ADC 电压输入】 RA6E2 支持 12 位 ADC
    发表于 11-10 01:29

    RA6E2ADC 电压温度计

    P000 引脚,用以测试 ADC 采样电压; 流程图 工程创建 打开 e^2^ studio 软件; 依次点击 文件 - 新建 -
    发表于 11-04 12:16

    RA6E2】Home Assistant物联网 ADC 温度计

    RA6E2】Home Assistant物联网 ADC 温度计 本文介绍了 RA-Ec
    发表于 11-03 22:10

    【EK-RA6E2开发指南】ADC获取电压值

    RA6E22ADC单元,每个ADC单元有12位、10位、8位读取数据的格式可以选择,在单元0上有13个ADC
    的头像 发表于 09-23 18:15 2279次阅读
    【EK-RA6<b class='flag-5'>E2</b>开发指南】<b class='flag-5'>ADC</b>获取电压值

    【RA4E2开发板评测】ADC+DAC

    收到了发过来的RA4E2开发板,之前也测试过相关的ARM单片机,
    发表于 09-02 13:35

    【RA4L1-SENSOR】RA4L1-SENSOR开发版开箱评测+e2studio软件安装

    RA4L1-SENSOR开发板。如下图所示 拿出里面的开发板,可以看到3件套,接上USB线, 二、e2studio软件安装 e2 studio (简称为 e2
    发表于 06-12 23:23

    RA单片机在e2 studio环境下printf编译出错的问题解析

    最近看到有一些网友在讨论关于:RA单片机在e2 studio环境下printf编译出错的问题。
    的头像 发表于 05-24 15:51 1800次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>RA单片机在<b class='flag-5'>e2</b> <b class='flag-5'>studio</b>环境下printf编译出错的问题解析