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

本文使用香橙派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

相关推荐
房开民3 小时前
c++总结
java·开发语言·c++
毕设源码-赖学姐4 小时前
【开题答辩全过程】以 基于Java的医院器材管理系统的设计与实现为例,包含答辩的问题和答案
java·开发语言
float_com4 小时前
【java常用API】----- Arrays
java·开发语言
不会写DN4 小时前
PHP 中的文件读写与上传
android·开发语言·php
LuckyTHP5 小时前
迁移shibboleth java获取shibboleth用户信息
java·开发语言
客卿1235 小时前
数论===质数统计(暴力法,)
java·开发语言
Σίσυφος19005 小时前
C++ 多肽经典面试题
开发语言·c++·面试
硅基喵5 小时前
.NET 进阶之路:异步、并发与内存管理的系统性认知
.net
csdn_aspnet6 小时前
C# 求n边凸多边形的对角线数量(Find number of diagonals in n sided convex polygon)
开发语言·算法·c#
俊俊谢6 小时前
LabVIEW如何排查和修复dll缺失问题
驱动开发·.net·labview·dll