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

相关推荐
Java天梯之路8 分钟前
Java 初学者必看:接口 vs 抽象类,到底有什么区别?
java·开发语言
p***323537 分钟前
如何使用C#与SQL Server数据库进行交互
数据库·c#·交互
7***533440 分钟前
Rust错误处理模式
开发语言·后端·rust
T***16071 小时前
C++在游戏开发中的AI行为树
开发语言·c++
无心水1 小时前
【Python实战进阶】5、Python字符串终极指南:从基础到高性能处理的完整秘籍
开发语言·网络·python·字符串·unicode·python实战进阶·python工业化实战进阶
4***14902 小时前
Rust系统工具开发实践指南
开发语言·后端·rust
2501_940943912 小时前
体系课\ Python Web全栈工程师
开发语言·前端·python
rafael(一只小鱼)2 小时前
AI运维开发平台学习
java·开发语言
b***74882 小时前
C++在系统中的内存对齐
开发语言·c++
散峰而望2 小时前
C++数组(三)(算法竞赛)
开发语言·c++·算法·github