2025 年最新树莓派 Pico 连接 OLED 显示字模汉字详细教程
OLED 概述
OLED(Organic Light-Emitting Diode,有机发光二极管)是一种基于有机材料的发光技术,通过电流驱动有机薄膜发光,具有自发光、高对比度、柔性可弯曲等特点。
4 针脚 OLED 硬件电路如图所示,GND 接 GND,VCC 接 3.3V,给 OLED 供电,剩下的是 SCL 和 SDA 是 I2C 的通信引脚,需要接在单片机 I2C 通信的引脚上,由于驱动函数模块用的是 GPIO 口模拟的 I2C 通信,所以这两个端口就可以接在任意的 GPIO 口上。
附加:Arduino 连接
SCL / SDA
SCL 和 SDA 是 I²C(Inter-Integrated Circuit,集成电路总线) 通信协议中的两条关键信号线,用于连接主设备(Master)和从设备(Slave)进行数据交换。
SCL(Serial Clock Line,串行时钟线)
由主设备控制,用于同步数据传输的时钟信号。决定数据传输的速率(频率通常为 100kHz(标准模式)、400kHz(快速模式)、1MHz(高速模式)或更高)。
SDA(Serial Data Line,串行数据线)
双向数据线,用于主从设备之间的实际数据传输。数据在SCL的上升沿或下降沿被采样(具体取决于协议模式)。
数据传输概述
主机写数据到从机
主机由从机中读数据
12C 通讯复合格式
其中 S 表示由主机的 I2C 接口产生的传输起始信号(S),这时连接到 I2C 总线上的所有从机都会接收到这个信号。 起始信号产生后,所有从机就开始等待主机紧接下来广播的从机地址信号 (SLAVE_ADDRESS)。
在 I2C 总线上,每个设备的地址都是唯一的,当主机广播的地址与某个设备地址相同时,根据 I2C 协议,这个从机地址可以是 7 位或 10 位。 在地址位之后,是传输方向的选择位,该位为 0 即主机向从机写数据。该位为 1 时,则相反,即主机由从机读数据。在此传输后选择数据寄存器和命令寄存器两种,传输到对应寄存器表示要传输数据 / 命令。
从机接收到匹配的地址后,主机或从机会返回一个应答 (ACK) 或非应答 (NACK) 信号, 只有接收到应答信号后,主机才能继续发送或接收数据。重复这个过程,可以向从机传输 N 个数据, 这个 N 没有大小限制
① 起始信号与停止信号 ② 应答信号 ③ 数据的有效性 ④ 数据传输
SSD1306
# MicroPython SSD1306 OLED driver, I2C and SPI interfacesfrom micropython import const
import framebuf# register definitions
SET_CONTRAST = const(0x81)
SET_ENTIRE_ON = const(0xA4)
SET_NORM_INV = const(0xA6)
SET_DISP = const(0xAE)
SET_MEM_ADDR = const(0x20)
SET_COL_ADDR = const(0x21)
SET_PAGE_ADDR = const(0x22)
SET_DISP_START_LINE = const(0x40)
SET_SEG_REMAP = const(0xA0)
SET_MUX_RATIO = const(0xA8)
SET_COM_OUT_DIR = const(0xC0)
SET_DISP_OFFSET = const(0xD3)
SET_COM_PIN_CFG = const(0xDA)
SET_DISP_CLK_DIV = const(0xD5)
SET_PRECHARGE = const(0xD9)
SET_VCOM_DESEL = const(0xDB)
SET_CHARGE_PUMP = const(0x8D)# Subclassing FrameBuffer provides support for graphics primitives
# http://docs.micropython.org/en/latest/pyboard/library/framebuf.html
class SSD1306(framebuf.FrameBuffer):def __init__(self, width, height, external_vcc):self.width = widthself.height = heightself.external_vcc = external_vccself.pages = self.height // 8self.buffer = bytearray(self.pages * self.width)super().__init__(self.buffer, self.width, self.height, framebuf.MONO_VLSB)self.init_display()def init_display(self):for cmd in (SET_DISP | 0x00, # off# address settingSET_MEM_ADDR,0x00, # horizontal# resolution and layoutSET_DISP_START_LINE | 0x00,SET_SEG_REMAP | 0x01, # column addr 127 mapped to SEG0SET_MUX_RATIO,self.height - 1,SET_COM_OUT_DIR | 0x08, # scan from COM[N] to COM0SET_DISP_OFFSET,0x00,SET_COM_PIN_CFG,0x02 if self.width > 2 * self.height else 0x12,# timing and driving schemeSET_DISP_CLK_DIV,0x80,SET_PRECHARGE,0x22 if self.external_vcc else 0xF1,SET_VCOM_DESEL,0x30, # 0.83*Vcc# displaySET_CONTRAST,0xFF, # maximumSET_ENTIRE_ON, # output follows RAM contentsSET_NORM_INV, # not inverted# charge pumpSET_CHARGE_PUMP,0x10 if self.external_vcc else 0x14,SET_DISP | 0x01,): # onself.write_cmd(cmd)self.fill(0)self.show()def poweroff(self):self.write_cmd(SET_DISP | 0x00)def poweron(self):self.write_cmd(SET_DISP | 0x01)def contrast(self, contrast):self.write_cmd(SET_CONTRAST)self.write_cmd(contrast)def invert(self, invert):self.write_cmd(SET_NORM_INV | (invert & 1))def show(self):x0 = 0x1 = self.width - 1if self.width == 64:# displays with width of 64 pixels are shifted by 32x0 += 32x1 += 32self.write_cmd(SET_COL_ADDR)self.write_cmd(x0)self.write_cmd(x1)self.write_cmd(SET_PAGE_ADDR)self.write_cmd(0)self.write_cmd(self.pages - 1)self.write_data(self.buffer)class SSD1306_I2C(SSD1306):def __init__(self, width, height, i2c, addr=0x3C, external_vcc=False):self.i2c = i2cself.addr = addrself.temp = bytearray(2)self.write_list = [b"\x40", None] # Co=0, D/C#=1super().__init__(width, height, external_vcc)def write_cmd(self, cmd):self.temp[0] = 0x80 # Co=1, D/C#=0self.temp[1] = cmdself.i2c.writeto(self.addr, self.temp)def write_data(self, buf):self.write_list[1] = bufself.i2c.writevto(self.addr, self.write_list)class SSD1306_SPI(SSD1306):def __init__(self, width, height, spi, dc, res, cs, external_vcc=False):self.rate = 10 * 1024 * 1024dc.init(dc.OUT, value=0)res.init(res.OUT, value=0)cs.init(cs.OUT, value=1)self.spi = spiself.dc = dcself.res = resself.cs = csimport timeself.res(1)time.sleep_ms(1)self.res(0)time.sleep_ms(10)self.res(1)super().__init__(width, height, external_vcc)def write_cmd(self, cmd):self.spi.init(baudrate=self.rate, polarity=0, phase=0)self.cs(1)self.dc(0)self.cs(0)self.spi.write(bytearray([cmd]))self.cs(1)def write_data(self, buf):self.spi.init(baudrate=self.rate, polarity=0, phase=0)self.cs(1)self.dc(1)self.cs(0)self.spi.write(buf)self.cs(1)
SSD1306_I2C
import machine
import ssd1306i2c = machine.I2C(0, sda=machine.Pin(0), scl=machine.Pin(1), freq=400000)
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
oled.fill(1)
oled.show()oled.fill(0)
oled.show()oled.text("Hello World!", 0, 9, 1)
oled.text("Huanxingshouwan!", 0, 18, 1)
oled.show()
字模编码
推荐字模编码网站:https://www.23bei.com/tool/216.html
输出格式:C51
数据排列:从左到右从上到下
取模方式:横向8点左高位
黑白取反:正常
字体种类:[HZK1616宋体]
import machine
import ssd1306
import framebufi2c = machine.I2C(0, sda=machine.Pin(0), scl=machine.Pin(1), freq=400_000)
oled = ssd1306.SSD1306_I2C(128, 64, i2c)oled.fill(1)
oled.show()oled.fill(0)
oled.show()fontlib = {"唤": [0x00,0x40,0x08,0x40,0x7C,0xF8,0x49,0x10,0x4A,0x24,0x49,0xFE,0x49,0x24,0x49,0x24,
0x49,0x24,0x49,0x24,0x4F,0xFE,0x78,0x20,0x48,0x50,0x00,0x88,0x01,0x06,0x06,0x04],"醒": [0x04,0x04,0xFE,0xFE,0x28,0x84,0x28,0xFC,0xFE,0x84,0xAA,0xFC,0xAA,0x20,0xAE,0xA0,
0xC2,0xFC,0x83,0x20,0x82,0x20,0xFE,0xFC,0x82,0x20,0x82,0x24,0xFF,0xFE,0x82,0x00],"手": [0x00,0x10,0x00,0xF8,0x7F,0x00,0x01,0x00,0x01,0x10,0x3F,0xF8,0x01,0x00,0x01,0x00,
0x01,0x04,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00],"腕": [0x08,0x40,0x7C,0x20,0x4B,0xFE,0x4A,0x02,0x4D,0x04,0x79,0xDC,0x49,0x54,0x49,0x54,
0x4A,0x54,0x7A,0x54,0x4D,0x5C,0x48,0x94,0x48,0x90,0x49,0x12,0x4A,0x0E,0x9C,0x00]
}def text_hz(hz, x, y):zm = bytearray(fontlib[hz])buf = framebuf.FrameBuffer(zm, 16, 16, framebuf.MONO_HLSB)oled.blit(buf, x, y)(x, y) = (0, 0)
for hz in "唤醒手腕":text_hz(hz, x, y)x += 16oled.show()
OSError 常见问题
OSError: [Errno 5] EIO
Traceback (most recent call last):File "<stdin>", line 7, in <module>File "ssd1306.py", line 113, in __init__File "ssd1306.py", line 35, in __init__File "ssd1306.py", line 70, in init_displayFile "ssd1306.py", line 118, in write_cmd
OSError: [Errno 5] EIO
OSError: [Errno 110] ETIMEDOUT
Traceback (most recent call last):File "<stdin>", line 6, in <module>File "ssd1306.py", line 110, in __init__File "ssd1306.py", line 36, in __init__File "ssd1306.py", line 73, in init_displayFile "ssd1306.py", line 101, in showFile "ssd1306.py", line 119, in write_data
OSError: [Errno 110] ETIMEDOUT
解决方案
i2c = machine.I2C(0, sda=machine.Pin(0), scl=machine.Pin(1), freq=400000)
相关文章:
2025 年最新树莓派 Pico 连接 OLED 显示字模汉字详细教程
OLED 概述 OLED(Organic Light-Emitting Diode,有机发光二极管)是一种基于有机材料的发光技术,通过电流驱动有机薄膜发光,具有自发光、高对比度、柔性可弯曲等特点。 4 针脚 OLED 硬件电路如图所示,GND 接…...
【Ubuntu 安装Docker CE-Jenkins】
安装Docker CE(Ubuntu) Install | Docker Docs官网 使用apt仓库安装 DNS配置(可选) #手动替换 sudo vim /etc/systemd/resolved.conf #典型配置如下 [Resolve] DNS8.8.8.8 DNS114.114.114.114 FallbackDNS1.1.1.1 # 备用 DNS#sed替换 sudo sed -i /^#DNS/ {s/#DNS/DNS8.8.8…...
知识图谱 + 大语言模型:打造更聪明、更可靠的AI大脑 —— 探索 GraphRAG 中文优化与可视化实践
大语言模型(LLMs)无疑是近年来人工智能领域最耀眼的明星。它们强大的自然语言理解和生成能力,在文本创作、代码生成、对话交互等众多领域展现了惊人的潜力。然而,当前的 LLMs 并非完美无缺,它们常常面临着“幻觉”&…...
三、【LLaMA-Factory实战】模型微调进阶:从LoRA到MoE的技术突破与工程实践
一、引言 在大模型微调领域,选择合适的训练策略直接决定了效率与效果的平衡。LLaMA-Factory深度整合了参数高效微调(PEFT)、全量微调、混合专家模型(MoE)等12种训练策略,支持从消费级GPU到多卡集群的全场景…...
Photo-SLAM论文理解、环境搭建、代码理解与实测效果
前言:第一个解耦式Photo-SLAM,亮点和效果。 参考:https://zhuanlan.zhihu.com/p/715311759 全网最细PhotoSLAM的conda环境配置教程,拒绝环境污染!!-CSDN博客 1. 环境搭建 硬件:RTX 4090D wi…...
解决pycharm检测不到已经装好的conda的pytorch环境
问题 1.找装anaconda的位置(我装到了py-anacon下) 2.找到下图中的conda.bat 3.pycharm社区版右下角,添加新解释器 4.选conda环境,选择2.中conda.bat的位置,加载环境,使用现有环境,可以看到有选…...
【计算机视觉】3d人脸重建:3DDFA_V2:实时高精度3D人脸重建与密集对齐技术指南
3d人脸重建:3DDFA_V2:实时高精度3D人脸重建与密集对齐技术指南 一、项目概述与技术背景1.1 3DDFA_V2核心价值1.2 技术演进路线1.3 核心技术指标 二、环境配置与模型部署2.1 硬件要求2.2 软件安装基础环境搭建关键组件安装 2.3 模型下载 三、核心算法原理…...
谈判模拟器 - Gemini 2.5 商业优化版
核心目标: 基于深厚的理论知识、丰富的实战经验和前沿的技术洞察,结合麦肯锡领先的谈判策略框架,为用户提供全面、深入、可操作的商业谈判策略指导和建议,助力其在复杂商业环境中达成最优谈判结果,并实现商业价值最大化…...
深度学习系统学习系列【4】之反向传播(BP)四个基本公式推导
文章目录 补充知识:∇ 和 ⊙ 运算符详解∇ (nabla) 运算符⊙ (圆圈点) 运算符 反向传播基本公式计算图和基本定义BP1:输出层误差推导BP1公式的重要性实际例子BP2第 l l l层误差推导BP3 :损失函数关于偏置(b)偏导的推导BP4: 损失函…...
算法每日一题 | 入门-顺序结构-上学迟到
上学迟到 题目描述 学校和 yyy 的家之间的距离为 s 米,而 yyy 以 v 米每分钟的速度匀速走向学校。 在上学的路上,yyy 还要额外花费 10 分钟的时间进行垃圾分类。 学校要求必须在上午 8:00 到达,请计算在不迟到的前提下,yyy 最…...
开源库测试
yolov10 https://github.com/THU-MIG/yolov10 conda create -n yolov10 python3.9 conda activate yolov10 pip install -r requirements.txt pip install -e .报错 找不到对应版本 Could not find a version that satisfies the requirement gradio4.31.5 (from versions:…...
因为gromacs必须安装cuda(系统自带的NVIDIA驱动不行),这里介绍下如何安装cuda
1. 安装步骤 查看是否安装了cuda # 法1 cat /usr/local/cuda/version.txt # 法2 nvcc --version 若没有安装,则查看是否有N卡驱动,若无N卡驱动,则到软件与更新 -> 附加驱动中安装驱动 查看N卡驱动支持的cuda版本 nvidia-smi 如下…...
ABC 404
1.C 题: 1.思路: NM&每个点读数为2,但图中有可能出现多环,需要判断所有点是否都在同一连通块上,有俩种解法:搜索,循环 2.代码(循环做法) #include<bits/stdc.h&g…...
机器学习朴素贝叶斯算法
1.朴素贝叶斯算法 1.1基本概念 其分类原理是利用贝叶斯公式根据某特征的先验概率计算出其后验概率,然后选择具有最大后验概率作为该特征所属的类。之所以称之为“朴素”,是因为贝叶斯分类只做最原始、最简单的假设:所有的特征之间是相对独立…...
Linux:深入理解数据链路层
实际上一台主机中,报文并没有通过网络层直接发送出去,而是交给了自己的下一层协议——数据链路层!! 一、理解数据链路层 网络层交付给链路层之前,会先做决策再行动(会先查一下路由表,看看目标网…...
健康养生:从生活点滴启航
养生并非遥不可及的高深学问,只需把握生活中的细微之处,就能为健康保驾护航。 清晨睁眼,先在床上做简单的搓脸动作,从下巴到额头轻柔按摩,促进面部血液循环,唤醒肌肤活力。随后空腹喝一杯温水,可…...
【向量数据库】用披萨点餐解释向量数据库:一个美味的技术类比
文章目录 前言场景设定:披萨特征向量化顾客到来:生成查询向量相似度计算实战1. 欧氏距离计算(值越小越相似)2. 余弦相似度计算(值越大越相似) 关键发现:度量选择影响结果现实启示结语 前言 想象…...
CloudCompare 中 ccDrawableObject
CloudCompare 中 ccDrawableObject 类的主要内容与使用 1. ccDrawableObject 概述 在 CloudCompare 中,ccDrawableObject 是一个基类,主要用于管理 3D 可绘制对象 的显示属性,如颜色、可见性、LOD(层次细节)、光照等…...
【Linux】进程控制
🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:Linux 目录 前言 一、什么是进程控制 二、进程创建 三、进程终止(进程退出) 退出码 main函数返回 _exit() exit() 测试 四、进…...
设计模式-基础概念学习总结(继承、多态、虚方法、方法重写)
概念使用例子的方式介绍(继承,多态,虚方法,方法重写),实现代码python 1. 继承(Inheritance) 概念:子类继承父类的属性和方法,可以直接复用父类的代码&#…...
分析rand()和srand()函数的功能
rand()和srand()函数原型: int rand(void) 返回一个范围在 0 到 RAND_MAX 之间的伪随机数。 void srand(unsigned int seed)用来给rand() 设置随机数发生器,随机数发生器输出不同的数值,rand() 就会生成不同的随机数 1)、在“D:\Keil_v5\AR…...
架构师如何构建个人IP:职业规划与业务战略的双重提升
在数字化时代,软件架构师的角色已从单纯的技术专家转变为兼具技术领导力和业务影响力的复合型人才。如何构建个人IP,提升行业影响力,成为架构师职业发展的关键课题。本文从个人认知、业务战略、架构决策、产品思维四个维度,探讨架…...
CSS知识总结
一、CSS核心概念解析 1.1 选择器体系(重点) 基础选择器: /* ID选择器 */ #header { background: #333; }/* 类选择器 */ .btn-primary { color: white; }/* 属性选择器 */ input[type"text"] { border: 1px solid #ccc; } 组合…...
CRS 16 slot 设备硬件架构
目录 1. 核心组件 1.1 线路卡与物理接口模块 1.2 交换结构与容量 1.3 控制与管理 1.4 风扇与散热 1.5 电源与告警 2. 插槽编号与机箱布局 2.1 前侧(PLIM 面) 2.2 后侧(MSC 面) 2.3 插槽配对 1. 核心组件 1.1 线路卡与物…...
人工智能浪潮中Python的核心作用与重要地位
在人工智能(Artificial Intelligence,AI)蓬勃发展的时代,Python已然成为推动这一技术进步的关键编程语言。从复杂的机器学习算法实现,到前沿的深度学习模型构建,再到智能系统的部署,Python无处不…...
【了解】数字孪生网络(Digital Twin Network,DTN)
目录 一、为什么?二、是什么?三、什么架构?四、如何应用?参考 一、为什么? 一方面,网络负载不断增加,,网络规模持续扩大带来的网络复杂性,使得网络的运行和维护变得越来越复杂。另一…...
[C语言]第一章-初识
目录 一.引言 二.MinGW 下载与安装 1.什么是 MinGW 2.下载 MinGW 3.安装 MinGW 4.配置 MinGW 环境变量 三.VS Code 下载与安装 1.什么是 VS Code 2.下载 VS Code 3.安装 VS Code 4.汉化 5.安装扩展插件 C/C 截图 四.编写并运行 Hello World 程序 代码解释 运行…...
如何用git将项目上传到github
步骤 1.创建仓库 2.记下仓库的url 3.在本地初始化仓库 路径要在项目下 cd /path/to/your/vue-project git init 4.创建touch .gitignore文件 在项目根目录下创建 .gitignore 文件,用于指定 Git 忽略哪些文件或文件夹 5.添加和提交项目文件 将文件提交到版本控…...
C++入门(上)--《Hello C++ World!》(1)(C/C++)
文章目录 前言命名空间域命名空间的用法 C的输入和输出缺省参数函数重载auto关键字(C11)范围for 前言 C不是C# C兼容大部分C的东西,但不是完全(98%的样子,除非遇到了不兼容的,那就记一下,不然就认为自己在C里面写的那些可以写到C里…...
架构思维:构建高并发读服务_基于流量回放实现读服务的自动化测试回归方案
文章目录 引言一、升级读服务架构,为什么需要自动化测试?二、自动化回归测试系统:整体架构概览三、日志收集1. 拦截方式2. 存储与优化策略3. 架构进化 四、数据回放技术实现关键能力 五、差异对比对比方式灵活配置 六、三种回放模式详解1. 离…...
代码随想录第33天:动态规划6(完全背包基础)
一、完全平方数(Leetcode 279) 本题与“零钱兑换”基本一致。 1.确定dp数组以及下标的含义 dp[j]:和为j的完全平方数的最少数量为dp[j] 2.确定递推公式 dp[j] 可以由dp[j - i * i]推出, dp[j - i * i] 1 便可以凑成dp[j]。 …...
Android控件View、ImageView、WebView用法
一 控件清单 View、ImageView、WebView 二 控件UI代码 <?xml version="1.0" encoding="utf-8"?> <androidx.coordinatorlayout.widget.CoordinatorLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app=&qu…...
关于浏览器页面自动化操作
Selenium 是一个用于自动化浏览器操作的强大框架,广泛应用于Web应用程序的测试自动化。它主要由以下几个核心组件组成: Selenium WebDriver: WebDriver 是 Selenium 的核心组件,它提供了一组API,允许开发者编写程序来…...
P5739 计算阶乘详解
此题目,对于会递归的很简单很简单,但作者是野人不会,只能是边刷边学,且题解比较有意思,所有我这次的重心不是题目,而是题解里面创作者展示的不一样的东西,先看题目 题目要求不用for循环…...
把Android设备变成“国标摄像头”:GB28181移动终端实战接入指南
把Android设备变成“国标摄像头”:GB28181移动终端实战接入指南 ——执法记录仪、巡检终端、布控球,如何通过大牛直播SDK直接挂到GB28181平台? 在过去,GB28181 通常用于固定摄像头、NVR等“设备端”。但在政务、安防、应急等行业…...
机器学习项目流程极简入门:从数据到部署的完整指南
前言 本文将通过一个简单案例(根据水果外观特征判断是否为橘子),逐步拆解机器学习项目的完整流程,帮助读者掌握从数据收集到模型部署的全流程方法论。 通常,一个完整的机器学习项目可以分为以下几个步骤: …...
PrivKV: Key-Value Data Collection with Local Differential Privacy论文阅读
文献阅读课需要制作ppt但是感觉选的这篇论文都是公式,决定做点动画直观展示一下。还没有完成会继续更新这个笔记 manim动画代码 需要下载ffmpeg下载latex https://docs.manim.org.cn/getting_started/installation.html ffmpeg下载教程 texlive官网 但是其实不需要…...
RViz(机器人可视化工具)的配置文件(moveitcpp)
1. Panels(面板设置) 面板是RViz界面中的各个功能区域,用于显示和操作不同的数据。 Displays(显示面板) Class: rviz_common/Displays 指定面板的类型,这里是显示面板。 Help Height: 78 帮助区域的高度…...
kotlin 01flow-StateFlow 完整教程
一 Android StateFlow 完整教程:从入门到实战 StateFlow 是 Kotlin 协程库中用于状态管理的响应式流,特别适合在 Android 应用开发中管理 UI 状态。本教程将带全面了解 StateFlow 的使用方法。 1. StateFlow 基础概念 1.1 什么是 StateFlow? StateF…...
OpenGl实战笔记(1)基于qt5.15.2+mingw64+opengl绘制三角形
一、实现效果 二、实现原理 (1)各函数作用与原理 initialize() 作用: 初始化 OpenGL 函数(initializeOpenGLFunctions()) 设置背景清除颜色为 rgba(0.2, 0.3, 0.4, 1.0)。 原理: initializeOpenGLFunctio…...
S100平台调试RS485/RS232
提供一个C语言的测试程序Demo #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h>...
蓝桥杯 19. 植树
植树 题目描述 小明和朋友们一起去郊外植树,他们带了一些在实验室中精心研究出的小树苗。 一共有 n 个人,每个人挑选了一个适合植树的位置,一共 n 个位置。每人准备在自己的位置种下一棵树苗。 但他们遇到一个问题:有的树苗比…...
Spring Boot 中 @Bean 注解详解:从入门到实践
在 Spring Boot 开发中,Bean注解是一个非常重要且常用的注解,它能够帮助开发者轻松地将 Java 对象纳入 Spring 容器的管理之下,实现对象的依赖注入和生命周期管理。对于新手来说,理解并掌握Bean注解,是深入学习 Spring…...
git项目迁移,包括所有的提交记录和分支 gitlab迁移到gitblit
之前git都是全新项目上传,没有迁移过,因为迁移的话要考虑已有项目上的分支都要迁移过去,提交记录能迁移就好;分支如果按照全新项目上传的方式需要新git手动创建好老git已有分支,在手动一个一个克隆老项目分支代码依次提…...
前端面试每日三题 - Day 25
这是我为准备前端/全栈开发工程师面试整理的第25天每日三题练习,涵盖了: CSS中如何实现一个保持宽高比的自适应正方形元素Angular的变更检测(Change Detection)机制项目实战 - 设计一个微前端架构的前端应用。 ✅ 题目1ÿ…...
基于windows安装MySQL8.0.40
基于windows安装MySQL8.0.40 基于windows 安装 MySQL8.0.40,解压文件到D:\mysql-8.0.40-winx64 在D:\mysql-8.0.40-winx64目录下创建my.ini文件,并更新一下内容 [client] #客户端设置,即客户端默认的连接参数 # 设置mysql客户端连接服务…...
基于机器学习算法预测二手车市场数据清洗与分析平台(源码+定制+讲解) 基于Python的数据挖掘与可视化 二手车数据处理与分析系统开发 (机器学习算法预测)
博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...
【神经网络与深度学习】普通自编码器和变分自编码器的区别
引言 自编码器(Autoencoder,AE)和变分自编码器(Variational Autoencoder,VAE)是深度学习中广泛应用的两类神经网络结构,主要用于数据的压缩、重构和生成。然而,二者在模型设计、训练…...
【现代深度学习技术】现代循环神经网络07:序列到序列学习(seq2seq)
【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重…...
【Linux我做主】进度条小程序深度解析
Linux下C语言进度条程序深度解析 进度条小程序GitHub地址 前言前置知识回车换行(CR/LF)的深度解析历史渊源与技术规范在进度条/倒计时中的应用 缓冲区机制的全面剖析缓冲区引入缓冲类型对比进度条开发中的关键控制 进度条实现以小见大——倒计时倒计时最…...