ESP32 S3-OLED显示小数函数

news2024/11/25 18:56:12

ESP32 S3 ardino平台,配中景园7针0.96OLED屏显示小数
OLED网上的驱动代码一般厂商发货会提供驱动程序,但是显示小数很多都没有编写。这里编写了一段可显示任意位小数的代码(以正点原子代码为基础),需要显示有符号的小数程序稍微修改即可。
//显示小数数字
//x,y :起点坐标
//num :要显示的小数字
//z_len :整数数字的位数
//f_len :小数数字的位数
//size:字体大小
//mode:0,反色显示;1,正常显示
//z_len为整数显示位数,f_len为小数显示位数,size1为字体大小
//******************************************************
void OLED_Showdecimal(u8 x,u8 y,float num,u8 z_len,u8 f_len,u8 size1,u8 mode)
{
u8 t,temp;
u8 enshow=0;
int z_temp,f_temp;
z_temp=(int)num;
//整数部分
for(t=0;t<z_len;t++)
{
//temp=(z_temp/OLED_Pow(10,z_len-t-1))%10;
temp=(z_temp/oled_pow(10,z_len-t-1))%10;
if(enshow0 && t<(z_len-1))
{
if(temp
0)
{
//OLED_ShowChar(x+(size1/2)*t,y,’ ‘,size1,mode);
OLED_ShowChar(x+(size1/2)*t,y,’ ‘,size1);
continue;
}
else
enshow=1;
}
//OLED_ShowChar(x+(size1/2)t,y,temp+‘0’,size1,mode);
OLED_ShowChar(x+(size1/2)t,y,temp+‘0’,size1);
}
//小数点
//OLED_ShowChar(x+(size1/2)
(z_len),y,‘.’,size1,mode);
OLED_ShowChar(x+(size1/2)
(z_len),y,’.',size1);

//f_temp=(int)((num-z_temp)*(OLED_Pow(10,f_len)));

f_temp=(int)((num-z_temp)(oled_pow(10,f_len)));
//小数部分
for(t=0;t<f_len;t++)
{
//temp=(f_temp/OLED_Pow(10,f_len-t-1))%10;
//OLED_ShowChar(x+(size1/2)
(t+z_len)+5,y,temp+‘0’,size1,mode);
temp=(f_temp/oled_pow(10,f_len-t-1))%10;
OLED_ShowChar(x+(size1/2)*(t+z_len)+5,y,temp+‘0’,size1);
}
}

主程序部分
void loop()
{
uint8_t t=’ ';
OLED_Init();
OLED_ColorTurn(0);//0正常显示 1反色显示
OLED_DisplayTurn(0);//0正常显示 1翻转180度显示
while(1)
{

OLED_ShowString(0,6,"ASCII:",16);  
OLED_ShowString(0,4,"CODE:",16);
OLED_ShowChar(48,6,t,16);
t++;
vv++;
if(t>'~')t=' ';
if(vv>15.0)vv=0.11;
OLED_ShowNum(40,4,t,3,16);
OLED_Showdecimal(2,2,vv,3,3,16,1);
delay(500);
OLED_Clear();

}
}
效果看下
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/667886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HDFS读写流程

读数据流程 客户端向NameNode请求文件的位置&#xff1a;客户端想要访问一个文件时&#xff0c;会向NameNode发送一个请求&#xff0c;要求获取该文件在HDFS上的位置信息。 NameNode将位置信息返回给客户端&#xff1a;NameNode接收到客户端的请求后&#xff0c;会返回该文件所…

【人脸检测0】视频分解图片与图片合成视频

一,引言 目标:这小节主要通过两个demo熟悉视频分解图片与图片合成视频的OpenCV的应用 环境:python3.6+OpenCV3.3.1 二,示例 Demo1:视频分解图片 目标: 1.指定文件夹中读取视频文件 2.将视频文件分解为图片 3.将图片保存在指定文件夹中 # -*-coding:utf-8-*- #auth…

Eureka配置文件详解

Eureka配置文件详解 文章目录 Eureka配置文件详解一、Eureka instance 配置项&#xff1a;二、Eureka Client 配置项三、Eureka Dashboard仪表板配置项四、Eureka Server配置项4.1 server与client关联配置4.2 server 自定义实现的配置4.3 server 与 remote 关联的配置4.4 serve…

《计算机图形学基础教程(孔令德)》期末考试-复习重点

文章目录 第一章&#xff08;重点&#xff09;&#xff1a;考概念1. 计算机图形的两种表示方法 P52. 计算机图形学、模式识别、计算机视觉等等之间的关系 P63. 计算机图形学的研究内容 &#xff08; 笔记P7 &#xff09;4. 发展历史 P75. 图形显示设备的发展 P96. 相关名词解释…

导入动画

资料 Rig Animation Unity性能优化 参数设置建议 Animation Type 不存在动画选择None;非人形动画选择Generic;人形动画可选择Generic或Humanoid。 需要反向动力学或动画重定向使用Humanoid&#xff0c;其他情况可使用Generic 骨骼数目相差不大时&#xff0c;Generci比Humano…

GWAS:表型的标准化(the normalization of phenotype)

GWAS表型的标准化方法一般有Quantile normalization、Inverse rank normalization、Z-score normalization等。 各自区别如下&#xff1a; 一、Quantile normalization 该方法将每个样本中表型值进行排序&#xff0c;然后将其规范化到一个标准分布&#xff0c;通常是正态分布…

uniapp多级联动选择器,区域选择组件分享

uniapp官方的多级联动选择器效果怎么样就不多说了&#xff0c;一言难尽。。。。 然后我对比了多个组件库&#xff0c;发现了uview组件库&#xff0c;里面有个picker选择器还可以&#xff0c;这是链接 但是在使用过程中也发现了该组件的一些问题 1、操作栏只能显示在顶部&…

MAC搭建M1环境的stable-diffusion

MAC M1 搭建 stable-diffusion 环境 文章目录 MAC M1 搭建 stable-diffusion 环境环境准备1. 硬件环境2. 系统环境3. 基础软件环境 主要参考资料操作步骤1. 下载git2. 下载conda3. 创建python环境4. 下载仓库5. 安装依赖6. 转换模型7. 验证和测试8. 构造Web界面9. 测试WebUI10.…

2023软件测试面试热点问题,3天刷完你的软件测试就牛了~

与开发工程师相比&#xff0c;软件测试工程师前期可能不会太深&#xff0c;但涉及面还是很广的。 在一年左右的实习生或岗位的早期面试中&#xff0c;主要是问一些基本的问题。 涉及到的知识主要包括MySQL数据库的使用、Linux操作系统的使用、软件测试框架问题、测试环境搭建问…

2022电工杯数学建模B题解题思路(5G 网络环境下应急物资配送问题)

一、前言 本文是对2022年第十四届 “电工杯” 高校数学建模挑战赛B题&#xff1a;5G 网络环境下应急物资配送问题的解题思路&#xff0c;希望能够对正在学习数学建模或者研究该类问题的读者提供帮助。作者在当届的比赛中&#xff0c;获得了本科组三等奖的成绩&#xff…

【新星计划·2023】Linux是什么?它与Windows有什么区别?

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 目录 一、Linux是什么&#xff1f; 二、Linux的应用领域 1、服务器领域 2、嵌入式领域 3、虚拟化 三、Linux的未来 1、云计算 2、大数…

Nmap中NSE数据文件分析

Nmap中NSE数据文件分析 1.Nmap中数据文件所在的位置2.暴力穷举时所使用的用户名和密码列表数据文件3.Web应用审计数据文件http-fingerprints.luahttp-sql-errors.lsthttp-web-files-extensions.lsthttp-devframework-fingerprints.luahttp-folders.txtvhosts-default.lstwp-plu…

S32K146入门 遇到 DefaultISR

S32K146入门 遇到 DefaultISR 1、芯片型号没有选对&#xff0c;pin管脚匹配不对 比如我使用的是S32K146HFMLQ&#xff0c;100pin&#xff0c;就要选择对应的型号 2、时钟配置不对 开发板是外部晶振8M&#xff0c;类型要选对。 我选择外部时钟给信号&#xff0c;导致一直出…

Linux使用NDK编译libtiff库并移植到Android平台

1.系统要求: ubuntu 20.04 LTS桌面版本 2.下载libtiff源码: 打开libtiff官方网站 ,打开libtiff源码仓库 http://www.simplesystems.org/libtiff/ 复制下载仓库地址: 克隆源码到本址: git clone --recursive https://gitlab.com/libtiff/libtiff.git 进入源码目录 3.安装…

软件测试需不需要懂代码?

无论是刚入测试行业的萌新&#xff0c;还是已经在测试行业闯荡了两三年的小司机们&#xff0c;都会琢磨一个问题&#xff1a;如果要持续发展下去&#xff0c;我要不要懂代码&#xff1f; 在软件测试初级阶段&#xff0c;不需要编程能力。但是任何一个职业&#xff0c;都会追求…

leetcode90. 子集 II(java)

子集II leetcode90. 子集 II题目描述解题思路代码演示 回溯算法专题 leetcode90. 子集 II 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/subsets-ii 题目描述 给你一个整数数组 nums &#xff0c;其中可能包含重复元素…

00后确实卷,公司新来的卷王,我们这帮老油条还真干不过.....

都说00后躺平了&#xff0c;但是有一说一&#xff0c;该卷的还是卷。 这不&#xff0c;前段时间我们公司来了个00后&#xff0c;工作都没两年&#xff0c;跳槽到我们公司起薪18K&#xff0c;都快接近我了。后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了…

Java集合Map接口的实现类(HashMap、LinkedHashMap等面试题)的结构

HashMap /** 一、Map的实现类的结构&#xff1a;* |----Map:双列数据&#xff0c;存储key-value对的数据 ---类似于高中的函数&#xff1a;y f(x)* |----HashMap:作为Map的主要实现类&#xff1b;线程不安全的&#xff0c;效率高&#xff1b;存储null的key和value|…

AIGC之文本内容生成概述(上)

由于本文内容稍微长了一点点&#xff0c;所以分成了上下两篇文章来介绍&#xff0c;本文是上篇&#xff0c;下篇将会在后续发布。关于自然语言的生成方面&#xff0c;这一块的内容太多了&#xff0c;本文也只是穿针引线&#xff0c;帮大家理清学习路线而已&#xff0c;更多的内…

关于ROS/ROS2 bag包的名称修改问题

1 问题的提出 在ROS/ROS2中&#xff0c;ROS 的 bag包的名称通常会包含录制的具体时间&#xff1a;YYYY-MM-DD-小时-分钟-秒钟&#xff0c;但是这样可读性不强&#xff0c;而且过一段时间&#xff0c;就不知道这个包是关于什么内容的了。如果需要修改bag包的名称&#xff0c;该…