隆太威电子网欢迎您!
新闻资讯

基于瑞萨R7FA2L1AB2DFL单片机的水位检测器制作方案

作者:    发布时间:2026-04-30 03:58:30    浏览量:

概述

文章主要介绍如何使用e2studio灵活软件包(FSP)对瑞萨R7FA2L1AB2DFL单片机开发板进行ADC单通道采集电压,评估AD功能,以及制作水位检测器。其中重点介绍了使用EZ-CUBE3仿真器对RA-Eco-RA2L1-48PIN开发板成功烧录及调试;

同时还使用另一个J-Link烧录固件至J-Link OB-STM32F072,对其升级,支持ARM v8的Renesas芯片烧录及调试,显示p000脚值、ADC电压值、水深值。

AD功能评估

01 创建工程

打开e2studio软件;

依次点击文件-新建-瑞萨C/C++项目-Renesas RA;

依次进行工程命名,路径设置,FSP版本,目标开发板选择,Device选择R7FA2L1AB2DFL,工具链选择GNU ARM Embedded;

完成工程创建。

ADC及串口配置完成后,构建工程,确保无误。

输入代码,实现ADC采集与重定向串口打印输出。

02 使用瑞萨EN-CUBE3仿真器调试

0dafb26a-28c9-11f1-90a1-92fbcf53809c.png

瑞萨EN-CUBE3仿真器

因RA-Eco-RA2L1-48PIN板上没有USB口,RA-Eco-RA2L1-48PIN调试时,左边档位先打到RA档,按下表RA SWD+串口列接线调试。之后,将左边档位打到USB+UART档,进行串口打印

0e0bf4a8-28c9-11f1-90a1-92fbcf53809c.png

用瑞萨EN-CUBE3仿真器调试时,项目-属性-工具设置选项为下表所示。

0e6c6176-28c9-11f1-90a1-92fbcf53809c.png

也可以对J-Link OB升级固件,用J-Link OB调试

因J-Link OB不支持ARM v8-M,J-Link OB进行如下改进

使用另一个J-Link或DAP-Link或ST-Link或PW-Link烧录更新的固件J-Link OB-STM32F072-128KB-CortexM 20231030.bin固件至STM32F072CBT6芯片。

0ec99eb8-28c9-11f1-90a1-92fbcf53809c.png

03 演示效果

EN-CUBE3

RA2L1-ADC

04 工程代码

左右滑动查看完整内容

#include"hal_data.h"
#include


FSP_CPP_HEADER
voidR_BSP_WarmStart(bsp_warm_start_event_tevent);
FSP_CPP_FOOTER


fsp_err_terr = FSP_SUCCESS;
volatilebool uart_send_complete_flag =false;
voiduser_uart_callback(uart_callback_args_t* p_args)
{
 if(p_args->event == UART_EVENT_TX_COMPLETE)
  {
    uart_send_complete_flag =true;
  }
}


/*------------- 串口重定向 -------------*/
#ifdef__GNUC__
 #definePUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else


#endif


PUTCHAR_PROTOTYPE
{
    err =R_SCI_UART_Write(&g_uart9_ctrl, (uint8_t*)&ch,1);
   if(FSP_SUCCESS != err) __BKPT();
   while(uart_send_complete_flag ==false){}
    uart_send_complete_flag =false;
   returnch;
}


int_write(intfd,char*pBuffer,intsize)
{
 for(inti=0;i

制作水位检测器

01水位传感器运行原理

当平行铜线之间有水时,水浸没的高度不同,电流不同。铜线间的电阻根据水位的变化而变化。

电阻与水的高度成反比(传感器浸水越深,导电性越好,电阻越小,电流越大)。电路连接:

ADC读取电压(V)与水位高度(mm)为线性相关关系:Y=41.774-38.686

从而得出水位值。RA-Eco-RA2L1-48PIN开发板与水位传感器连线图如下

0f88538a-28c9-11f1-90a1-92fbcf53809c.png

02主循环部分代码修改如下

左右滑动查看完整内容

while(1)
{
   uint16_tadc_data25=0;
   doublea25,wl;// define wl (water level)
    (void)R_ADC_ScanStart(&g_adc0_ctrl);
    scan_complete_flag =false;
   while(!scan_complete_flag)
    {
    }


    err =R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_25, &adc_data25);
   assert(FSP_SUCCESS == err);
    a25=(double)(adc_data25/4095.0)*3.3;
    wl = (double)(41.774* a25 -38.686);// water level definition equation
   printf("P510(AN25)=%d, voltage=%f, water level=%f mm
",adc_data25,a25,wl);// print water level (mm)


   R_BSP_SoftwareDelay(1000, BSP_DELAY_UNITS_MILLISECONDS);
}

03演示效果

RA2L1-水位测试

结果结论

瑞萨RA2L1微控制器集成的外设,简化了设计并能加快开发过程。它有优越的关键性能,比如:灵活的连接性(UART通信接口等)满足工业自动化项目的需求。