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

网站后台开发教程jsp网站缓存在哪

网站后台开发教程,jsp网站缓存在哪,陕西营销型网站建设,四川通江县住房和建设局网站【瑞萨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/a/470202.html

相关文章:

  • 网站页面怎么做的好看百度在西安的公司叫什么
  • Python 打印1-100的素数
  • 创建子进程时的一些细节
  • STM32 EC11旋转编码器扫描读取
  • 如何对抗GPS欺骗式干扰之二:多天线阵列测向的识别原则和应用场景
  • Linux 内核网络调优:单连接大带宽吞吐配置
  • STM32 外设驱动模块【含代码】:XY摇杆模块
  • 商会网站模板河南核酸检测vip
  • 外骨骼手套带来了一种仅用手就能与XR进行交互的更自然的方式
  • 学习随笔-Math
  • Android 权限模型(前台、后台、特殊权限)
  • 成安专业做网站公司注册的流程与步骤
  • 多个编码智能体同时使用会不会混乱?
  • wpf中调用NumericUpDown控件
  • JVM(九)-- 类的生命周期
  • 数字孪生重构智慧园区:众趣科技何以成为 VR 园区领域标杆
  • LeetCode 刷题【113. 路径总和 II】
  • 网站英文联系我们毕设做购物网站系统的原因
  • 当涂城乡建设局的网站wordpress 链接主题
  • 利用ps制作网站的设计江苏省建设工程集团
  • Linux内核架构浅谈9-Linux内核的开源生态:开发者协作与版本迭代机制
  • 【经验总结】AUTOSAR架构下NvM进入无限循环问题分析
  • 春招准备之Git篇
  • 11-py调用js
  • 分析竞争对手网站公司网站建设怎么
  • 2.Xshell效率实战:SSH管理秘籍的技术
  • 长春网站建设长春建设一个视频网站需要什么
  • 网站建设的设计方案平度市网站建设
  • Salesforce项目老掉坑?这8个思维陷阱千万别踩
  • 从递归到迭代的全方位解析——力扣38.外观数列(Count and Say)