当前位置: 首页 > wzjs >正文

做社交网站国家建设厅网站

做社交网站,国家建设厅网站,合肥百度 网站建设,大连制作网站报价【瑞萨RA4L1-SENSOR套件测评】LCD 水位显示 本文介绍了瑞萨 RA4L1 开发套件通过瑞萨 e2 Studio 灵活软件包(FSP)快速创建工程,ADC 读取水位传感器模拟信号电压,实现 LCD 段码屏实时显示水位高度的项目设计。 简介 在前三篇帖子…

【瑞萨RA4L1-SENSOR套件测评】LCD 水位显示

本文介绍了瑞萨 RA4L1 开发套件通过瑞萨 e2 Studio 灵活软件包(FSP)快速创建工程,ADC 读取水位传感器模拟信号电压,实现 LCD 段码屏实时显示水位高度的项目设计。

简介

在前三篇帖子中,我们介绍了瑞萨 RA4L1 开发套件通过 e2 studio 软件实现 ADC 水位监测计与串口打印、 LCD 显示工程测试、LCD 自定义数字显示 的主要流程。

这里我们将进一步实现 ADC 电压值的 LCD 显示水位高度的 LCD 显示 的项目设计。

项目方案

  1. 创建 LCD 显示工程;
  2. 构建 LCD 显示函数库文件,实现自定义数字显示;
  3. 添加 UART 和 ADC 堆栈,将 A0 模拟通道采集的电压值通过串口打印,并输送至 LCD 显示;
  4. 连接水位传感器,通过 A0 读取模拟信号电压值,转换为水位高度,并输送至 LCD 显示。

代码

使用 e2 studio 软件和 FSP 快速创建目标工程,配置 UART、 ADC 和 LCD 堆栈,生成工程的基本架构;

添加 LCD 数字显示库文件和主函数代码;

电压 LCD 显示

添加串口打印和ADC电压采集关键代码;

#include "hal_data.h"
#include <stdio.h>
#include "LCD_ShowNum.h"FSP_CPP_HEADER
void R_BSP_WarmStart(bsp_warm_start_event_t event);
FSP_CPP_FOOTERfsp_err_t err = FSP_SUCCESS;
volatile bool uart_send_complete_flag = false;
void user_uart_callback (uart_callback_args_t * p_args)
{if(p_args->event == UART_EVENT_TX_COMPLETE){uart_send_complete_flag = true;}
}
#ifdef __GNUC__                                 //串口重定向#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else#endifPUTCHAR_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;return ch;
}int _write(int fd,char *pBuffer,int size)
{for(int i=0;i<size;i++){__io_putchar(*pBuffer++);}return size;
}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 *//* Open the transfer instance with initial configuration. */err = R_SCI_UART_Open(&g_uart9_ctrl, &g_uart9_cfg);assert(FSP_SUCCESS == err);printf("hello world!\n");/* 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);/* Open SLCDC driver */err = R_SLCDC_Open(&g_slcdc0_ctrl, &g_slcdc0_cfg);/* Handle any errors. This function should be defined by the user. */assert(FSP_SUCCESS == err);/* When using internal boost mode this delay is required to allow the boost circuit to charge. See RA4M1 User's* Manual (R01UH0887EJ0100) 8.2.18 "Segment LCD Source Clock Control Register (SLCDSCKCR)" for details. */R_BSP_SoftwareDelay(5, BSP_DELAY_UNITS_MILLISECONDS);/* Start SLCDC output */err = R_SLCDC_Start(&g_slcdc0_ctrl);assert(FSP_SUCCESS == err);while(1){uint16_t adc_data25 = 0;double a25;/* 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_25, &adc_data25);assert(FSP_SUCCESS == err);a25 = (double)(adc_data25/4095.0)*3.3;printf("P510(AN25) = %d, Voltage = %fV\n",adc_data25,a25);uint16_t Num = a25 * 100; // convert to uint16_t styleLCD_ShowNum(Num);R_BSP_SoftwareDelay (500, BSP_DELAY_UNITS_MILLISECONDS);LCD_Clear();}#if BSP_TZ_SECURE_BUILDR_BSP_NonSecureEnter();
#endif
}

构建工程并调试、上传固件,即可实现 ADC 电压值的 LCD 显示。

水位 LCD 显示

添加水位高度与电压关系的转换代码

while(1)
{uint16_t adc_data25 = 0;double a25,wl;(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 equationprintf("P510(AN25) = %d, Voltage = %fV, Water Level = %fmm\n",adc_data25,a25,wl);uint16_t Num = wl * 100; // convert to uint16_t styleLCD_ShowNum(Num);R_BSP_SoftwareDelay (500, BSP_DELAY_UNITS_MILLISECONDS);LCD_Clear();
}

构建工程并调试、上传固件,即可实现水位高度的 LCD 显示。

效果

这里分别展示了 ADC 电压值和水位高度的 LCD 显示以及串口输出效果。

ADC 电压的 LCD 显示

A0 分别连接 3V3GND、悬空,LCD 显示结果分别如下

在这里插入图片描述

在这里插入图片描述

ADC 电压的串口发送

使用 Type-C 数据线连接开发板的UART接口,运行串口调试助手软件,打开对应的端口即可获得输出本文

在这里插入图片描述

水位传感器信号的 LCD 显示

将水位传感器的模拟信号输出引脚与开发板的 A0 排母接口相连,此时 LCD 实时显示其电压值(单位:V 伏特)

在这里插入图片描述

动态效果

在这里插入图片描述

水位高度的 LCD 显示

电压转换为水位高度(单位:毫米),实现 LCD 显示水位高度值

在这里插入图片描述

动态效果

在这里插入图片描述

可见 LCD 显示的水位高度值随水位传感器的上下移动不断发生变化,即实现了实时水位监测。

同时串口打印水位

在这里插入图片描述

总结

本文介绍了瑞萨 RA4L1 开发套件通过瑞萨 e2 Studio 软件和灵活软件包(FSP)快速创建工程,ADC 读取水位传感器的模拟信号电压,实现 LCD 段码屏实时显示水位高度的项目设计,为瑞萨 RA4L1 系列单片机的快速开发和应用提供了参考。

http://www.dtcms.com/wzjs/574320.html

相关文章:

  • 没有网站怎么做百度推广哪里有做微商网站
  • 网站建设业务员学校官方网站网页设计
  • 惠州网站建设模板免费创建论坛
  • 网站建设太金手指六六十一顺德大良做网站
  • 深圳网站建设 响应式设计开发wordpress首页显示友链
  • 网站建设维护协议书商业网站的建设与维护
  • 做网站竞品分析山东品牌建设网站
  • 福田时代汽车官方网站广东品牌网站建设968
  • 唐山网站关键词优化微信公众平台做微网站吗
  • flash同视频做网站个人网页图片模块制作
  • 自己动手建设网站百度推广投诉中心
  • 谷歌建站多少钱wordpress 网站 上传
  • 杭州做电商网站常州建设银行网站
  • 昆明网站建设网站建设网站建设中请期待
  • 南宁做网站推广点击即玩的小游戏网站
  • 网站设计总结公司线上推广
  • WordPress电影网站源码国外网站模板
  • 广州网站建设哪家公司好申请公司邮箱
  • 湛江模板建站平台wordpress产品增加视频
  • 手机做免费个人网站广告投放报价
  • 江西科技学校网站建设网站建设的开票编码
  • 软件承接网站建设想找人做网站 要怎么选择
  • 龙岗商城网站建设教程网站怎么制作教程
  • 上海金山区建设局网站一个网站的建设流程有哪些
  • 外贸网站建设应该怎样选择语言石家庄核酸检测
  • 用php做视频网站的步骤珠海品牌网站制作
  • 秦皇岛seo网站推广互联网保险和线下保险的优缺点
  • 延安免费做网站公司站点推广是什么意思
  • 某公司人事管理网站开发抖音同城引流推广怎么做
  • 牛商网做的网站有哪些.net美食网站开发源代码