c#/ .net8 香橙派orange pi +SSD1306 oled显示屏 显示中文+英文 实例

news2025/2/27 20:58:33

本文使用香橙派orangepi pi 3lts+SSD1306 oled显示屏作为例子,其它型号的也是一样使用的

在nuget包中安装 

Sang.IoT.SSD1306;

以下两个二选一
SkiaSharp;//在window下运行装这个

SkiaSharp.NativeAssets.Linux.NoDependencies;//在linux下运行一定要装这个

在c# .net 8中开发的代码 

using Sang.IoT.SSD1306;
using SkiaSharp;

namespace IotDeviceToolHepler.Device
{

    public class DeviceDisplay_SSD1306
    {
       
        public void Test()
        {
            Display();
        }

        public void Display()
        {
            Console.WriteLine("Start. Press Ctrl+C to end.");
            // 显示准备
            using var oled = new SSD1306_128_64(0); //这里的0对应i2c通道
            oled.Begin();
            oled.Clear();

            var bitmap = new SKBitmap(128, 64, true);
            SKPaint paint = new SKPaint()
            {
                Color = new SKColor(255, 255, 255),
                StrokeWidth = 1, //画笔宽度
                Typeface = SKTypeface.FromFile("/usr/share/fonts/truetype/wqy/MSYH.TTC"),//linux下显示中文,需要字库,从window中的C:\Windows\Fonts\目录中copy过去
                TextSize = 13,  //字体大小
                Style = SKPaintStyle.Fill,
            };

            SKCanvas canvas = new SKCanvas(bitmap);
            while (true)
            {
                paint.TextSize = 13;
                canvas.DrawText(System.DateTime.Now.ToString("yyy-MM-dd HH:mm:ss"), 0, 12, paint);
                paint.TextSize = 30;
                canvas.DrawText("设备正常", 0, 50, paint);
                oled.Image(bitmap.Encode(SKEncodedImageFormat.Png, 100).ToArray());
                oled.Display();
                canvas.Clear();
                Thread.Sleep(1000);
            }
        }

    }
}

这里出现的问题,就是中文出现乱码,需要在linux中上传中文字库,详细处理方法见:.net 在ubuntu下动态写入 中文字乱码 解决:ubuntu下添加中文字库-CSDN博客

驱动官方例子:https://github.com/sangyuxiaowu/Sang.IoT.SSD1306 

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

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

相关文章

android高级面试题2020,这套Github上40K+star面试笔记

前言 这里整理的是一些与技术没有直接关系的面试题,但是能够考察你的综合水平,所以不要以为不是技术问题,就不看,往往有时候就是这样一些细节的题目被忽视,而错过了一次次面试机会。 想要成为一名优秀的Android开发&…

iOS App冷启动优化:二进制重排

原理 二进制文件中方法的加载顺序, 取决于方法在代码文件中的书写顺序,而不是调用顺序。 应用程序启动时会调用到的方法是有限的,但可能分散在很多个。 由于内存是分页管理的,要加载就要 整页加载。 这就导致很多完全还用不到的方…

单点故障解决方案之Smart Link与Monitor Link

-SmartLink技术,创建Smart Link 组。在该组中,加入两个端口。其中1个端口是主端口,也称之为Master端口。另外1个端口是备份端口:也称之为 Slave 端口。 -Monitor Link 组也称之为“监控链路组,由上行端口和下行端口共同组成。下行…

XUbuntu22.04之如何定制:已经绑定的快捷键?(二百一十五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

汽车后视镜反射率检测仪厂家

随着汽车工业的快速发展,汽车后视镜作为驾驶员观察车辆周围环境的重要工具,其性能和质量对于交通安全至关重要。汽车后视镜的反射率检测仪是一种用于检测汽车后视镜反射性能的专业设备,其重要性不言而喻。本文将重点介绍汽车后视镜反射率检测…

【北京迅为】《iTOP-3588开发板网络环境配置手册》第1章 网络基础知识学习

RK3588是一款低功耗、高性能的处理器,适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用,RK3588支持8K视频编解码,内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

违背祖训,微软骚操作强制用户更新至 Win 11 23H2

话说,大伙儿有让 Windows 操作系统一直保持最新版习惯吗? 根据以往惯例,Windows 系统更新是个比较玄学的存在,谁也不能保证随手更新后会不会出现什么奇葩 Bug。 因此对于不少同学来说,Windows 更新到一个稳定版本后&a…

AI大模型 拍照搜题

最近,发现一款小程序【问智通】,实现了拍照搜题结合AI大模型,省去了打字和敲数学公式向AI提问,完美的补充了其它拍照搜题平台拍不到,没解析等不足!!! 小程序码: APP下载…

前后端项目-part03

文章目录 5.4.4 机构名称5.4.4.1 创建实体类Company5.4.4.2 创建实体类CompanyMapper5.4.4.3 创建实体类CompanyService5.4.4.4 创建实体类CompanyController5.4.4.5 后端测试5.4.4.6 修改basic.js5.4.4.7 修改course.vue5.4.4.8 测试5.4.5 课程标签5.4.5.1 效果5.4.5.2 修改co…

Spring Web 过滤器使用常见错误(上)

我们都知道,过滤器是 Servlet 的重要标准之一,其在请求和响应的统一处理、访问日志记录、请求权限审核等方面都有着不可替代的作用。在 Spring 编程中,我们主要就是配合使用ServletComponentScan 和 WebFilter 这两个注解来构建过滤器。 说起…

企业计算机服务器中了_locked勒索病毒怎么办,_locked勒索病毒解密数据恢复

在企业的生产运营工作中,网络的力量非常强大,可以为企业带来极大的便利性,越来越多的企业通过网络的力量开展各项工作,扩大业务范围,但在工作过程中,人们也需要警惕网络威胁的存在。近期,云天数…

向日葵、Todesk、teamviewer等工具远程连接电脑时第三方应用显示白屏

问题描述:用向日葵远程等桌面时,当把显示器断电或者就没有显示器时或者笔记本盖子合住时,第三方软件显示白屏或显示不出来的问题。 原因:某些显卡在断开屏幕时自动降为低功耗模式。 解决 1、下载工具 https://www.amyuni.com/d…

Vue.js入门指南:简介、环境配置与Yarn创建项目

一、Vue.js简介 Vue.js,一个流行的JavaScript框架,以其直观、灵活和高效的特点,在前端开发者中赢得了广泛的赞誉。Vue.js的核心库专注于视图层,使得开发者能够构建出响应式的数据绑定和组合的视图组件。Vue.js的目标是通过尽可能简…

IntelliJ IDEA 常用快捷键和下载链接

下载链接(windows) 下载 IntelliJ IDEA – 领先的 Java 和 Kotlin IDE 编码时: 跳转到引用方法的地方 (有多个引用时会出现下拉列表) ctrl鼠标左键 跳转后回到原来的地方 …

JVM运行时数据区——运行时数据区及线程概述

文章目录 1、运行时数据区概述2、线程3、小结 内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM在程序执行期间把它所管理的内存分为若干个不同的数据区域。这些不同的数据区域可以分为两种类型&#xff…

接口测试报错“REQUEST JSON PARSING FAILED”

经验分享:json文本通过微信发送会自动添加空格,复制粘贴的之后需要注意,先把空格去掉再请求。 1.问题现象:接口测试的时候请求响应提示json格式错误 2.问题排查:JSON在线解析及格式化验证 - JSON.cn 利用第三方json解…

Flutter Dio进阶:使用Flutter Dio拦截器实现高效的API请求管理和身份验证刷新

Flutter笔记 使用Flutter Dio拦截器实现高效的API请求管理和身份验证刷新 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article…

pclpy 拉格朗日乘子法拟合平面

pclpy 拉格朗日乘子法拟合平面 一、算法原理1.算法步骤 二、代码三、结果1.左边原点云数据,右边将点云拉格朗日乘子法拟合平面投影在该平面 四、相关数据 一、算法原理 1.算法步骤 对k一近邻点拟合平面,最小二乘法(平面过重心)&…

金三银四面试必问:Redis真的是单线程吗?

文章目录 01 Redis中的多线程1)redis-server:2)jemalloc_bg_thd3)bio_xxx: 02 I/O多线程03 Redis中的多进程04 结论▼延伸阅读 由面试题“Redis是否为单线程”引发的思考 作者:李乐 来源:IT阅读…

【MySQL】数据管理——DML操作数据

目录 DML(数据操作语言)添加数据插入单行语法插入多行语法SQL示例将查询结果插入到新表中语法1:语法2: 修改数据语法示例关于SQL的运算符算术运算符比较运算符逻辑运算符 案例 删除数据DELETE命令语法 TRUNCATE TABLE 命令语法代码…