ESP32 S3-OLED显示小数函数

2023-11-07

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();

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESP32 S3-OLED显示小数函数 的相关文章

  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • 为什么一旦我离开内置的运行服务器,Django 就无法找到我的管理媒体文件?

    当我使用内置的简单服务器时 一切正常 管理界面很漂亮 python manage py runserver 但是 当我尝试使用 wsgi 服务器为我的应用程序提供服务时django core handlers wsgi WSGIHandle
  • 尝试将 Web 服务部署到 TomEE 时出现“找不到...的 appInfo”

    我有一个非常简单的项目 用于培训目的 它是一个 RESTful Web 服务 我使用 js css 和 html 创建了一个客户端 我正在尝试将该服务部署到 TomEE 这是我尝试部署时遇到的错误 我在这里做错了什么 刚刚遇到这个问题 我曾
  • 使用 python/numpy 重塑数组

    我想重塑以下数组 gt gt gt test array 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44 为了得到 gt gt gt test2 array 11 12 21 22 13 14
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • python的shutil.move()在linux上是原子的吗?

    我想知道python的shutil move在linux上是否是原子的 如果源文件和目标文件位于两个不同的分区上 行为是否不同 或者与它们存在于同一分区上时的行为相同吗 我更关心的是如果源文件和目标文件位于同一分区上 shutil move
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 重新分配唯一值 - pandas DataFrame

    我在尝试着assign unique值在pandas df给特定的个人 For the df below Area and Place 会一起弥补unique不同的价值观jobs 这些值将分配给个人 总体目标是使用尽可能少的个人 诀窍在于这
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • Firebase Firestore:获取文档的生成 ID (Python)

    我可以创建一个新文档 带有自动生成的 ID 并存储对其的引用 如下所示 my data key value doc ref db collection u campaigns add my data 我可以像这样访问数据本身 print d
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要
  • 如何在 Flask 中的视图函数/会话之间传递复杂对象

    我正在编写一个 Web 应用程序 当 且仅当 用户登录时 该应用程序从第三方服务器接收大量数据 这些数据被解析为自定义对象并存储在list 现在 用户在应用程序中使用这些数据 调用不同的视图 例如发送不同的请求 我不确定什么是最好的模式在视
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp
  • 如何将Python3设置为Mac上的默认Python版本?

    有没有办法将 Python 3 8 3 设置为 macOS Catalina 版本 10 15 2 上的默认 Python 版本 我已经完成的步骤 看看它安装在哪里 ls l usr local bin python 我得到的输出是这样的
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db

随机推荐

  • python async 异步

    1 requests 包不支持异步 使用 requests async import asyncio import threading import time from aiohttp import ClientSession import
  • g++配置选项-std=c++11

    如何配置g 选项 std c 11 g 命令改为 g std c 11 qt配置std的c 11 QMAKE CXXFLAGS std c 11 如果没有配置c 11 就会报如下错
  • Comparable、compareTo、Comparator、compare之间有什么区别

    Comparable和Comparator是Java的接口 而compareTo是Comparable接口中的方法 compare是Comparator中的方法 在Scala中Ordered相当于Java中的Comparable 在Scal
  • UML2面向对象分析与设计(第2版) 谭火彬 杂记

    首先 来讲讲我对泛化的理解 其实这是站在的视角的不同而表述的不同 泛化是站在父类的角度 父类给孩子的方式叫泛化 而继承是站在孩子的角度 儿子继承父类的方式叫继承 其实上了谭老师大概一章的课程 并且我觉得谭老师真的是对面向对象很有认识的 这门
  • java设计模式之建造者模式

    定义 建造者模式将一个复杂对象的构建过程与它的表示分离 使得同样的构建过程可以创建不同的表示 属于创建型设计模式 对于用户而言 使用建造者模式只需指定需要创建的类型就可以获得对象 创建过程及细节不需要了解 根据建造者模式的定义 可以简单的理
  • 关于udelay(); mdelay(); ndelay(); msleep();

    在 inux river开发中 经常要用到延迟函数 msleep mdelay udelay 虽然msleep和mdelay都有延迟的作用 但他们是有区别的 mdeday还忙等待函数 在延迟过程中无法运行其他任务 这个延迟的时间是准确的 是
  • 分享几个直接访问的GPT项目,ChatGPT智能最佳实践

    自美国时间12月2日上线以来 美国硅谷的初创公司OpenAI推出的ChatGPT 已经拥有超过一百万的用户 受到热烈的讨论 它既能完成包括写代码 修bug 代码改错 翻译文献 写小说 写商业文案 创作菜谱 做作业 评价作业等一系列常见文字输
  • 在linux系统启动springboot项目

    1 springboot项目打包 在项目根目录的地址栏输入cmd并回车 执行如下命令 生成jar mvn clean package 2 部署并执行 传到linux系统的指定位置 在安装好jdk和数据库等相关环境 执行jar 1 java
  • 【TA-霜狼_may-《百人计划》】美术2.7 Metallic 与 Speculer流程

    TA 霜狼 may 百人计划 美术2 7 Metallic 与 Speculer流程 TOC TA 霜狼 may 百人计划 美术2 7 Metallic 与 Speculer流程 2 7 1 概念 2 7 2 两种流程 通用贴图 2 7 3
  • Sass 条件语句

    本节我们来学习 Sass 中的条件语句 可以使用 if 指令来判断条件表达式的值 然后控制输出 Sass 中的 if else 等指令和 JS 中的 if else 类似 if 指令 当 if 指令后面的表达式返回值为 true 时 输出花
  • 使用Arduino开发ESP32(19):获取网络时间

    文章目录 目的 基础说明 示例演示 额外说明 网络时间服务器 struct tm结构体与格式化输出 time t 和 time 总结 目的 时间是软硬件系统或设备中比较重要的东西 特别是需要和外部进行交互时就更加需要用到有个统一的时间了 目
  • java web前端面试题_web前端笔试试题(答案)

    一 填空题 每空1分 共70分 1 JS中的数据类型有哪些 string number undefined null boolean Object Array Function 3分 2 JS中强制类型转换为number类型的方法有 par
  • 西安现场打铁记

    打铁游记 Day1 去寺庙烧了烧香拜了拜佛 去了去毒 然后在热身赛快速猜对 直接过了A B题暴力模拟一下100多行代码也是过了 最后80多名 感觉不错 美滋滋 Day2 运气都用在的昨天的热身赛 今天2发才过了B 对于F题没敢去猜 3个小时
  • lightGBM介绍,以及xgboost与lightGBM的区别

    一 lightGBM 1 简介 lightGBM全称为light Gradient Boosting Machine 2017年经微软推出 是XGBoost的升级版 在大规模数据集上运行效率更高 GBDT在每一次迭代的时候 都需要遍历整个训
  • 解决虚拟机Linux获取不到ip或者登陆地址tty1获取不到ip方法

    查询不到ip虚拟机127 0 0 0 使用root登陆 us root 1 如果ifconfig命令无法使用或者查不到也可以 然后使用 dhclient v命令 1 然后ip addr 就可以了
  • 新创建多模块工程执行maven编译打包出现non-resolvable parent pom异常

    新创建多模块工程 在执行mvn clean install时抛出non resolvable parent pom 找不到父pom异常 FATAL Non resolvable parent POM for com alibaba unkn
  • 中文核心期刊与科技核心期刊区别?

    投稿前一定要先搞清楚各大期刊的区别 在我们发表论文之前 一定要先搞清楚各大期刊的区别进行精准投递 由于各期刊的等级分类不同 评选组织不同 评选范围和评选的领域不同 在选择的时候 一定要搞清楚各期刊的类别划分 不仅可以帮助我们精准定位自己的学
  • C++11智能指针之unique_ptr

    1 智能指针概念 智能指针是基于RAII机制实现的类 模板 具有指针的行为 重载了operator 与operator gt 操作符 可以 智能 地销毁其所指对象 C 11中有unique ptr shared ptr与weak ptr等智
  • 闲鱼项目玩法实战,月入破万实战指南!

    一些闲鱼的实操技巧玩法 做短期项目都同学一定收藏下 1 相同属性的商品上架1 2个即可不宜过多 每天上新1 2为宜 过多都会限流 2 商品名称根据用户可能会输入的关键词去拆分下逐个输入搜索框 如果有搜不到的 就是谐词汇 不断尝试更换 直到都
  • ESP32 S3-OLED显示小数函数

    ESP32 S3 ardino平台 配中景园7针0 96OLED屏显示小数 OLED网上的驱动代码一般厂商发货会提供驱动程序 但是显示小数很多都没有编写 这里编写了一段可显示任意位小数的代码 以正点原子代码为基础 需要显示有符号的小数程序稍