当前位置: 首页 > news >正文

单片机总结【GPIO/TIM/IIC/SPI/UART】

一、GPIO

1、概念

通用输入输出口;开发者可以根据自己的需求将其配置为输入或输出模式,以实现与外部设备进行数据交互、控制外部设备等功能。简单来说,GPIO 就像是计算机或微控制器与外部世界沟通的 “桥梁”。

2、工作模式

工作模式性质特征
上拉输入数字输入可读取引脚电平,内部连接上拉电阻,悬空时默认高电平
下拉输入数字输入可读取引脚电平,内部链接下拉电阻,悬空时默认低电平
模拟输入模拟输入GPIO无效,引脚直接接入内部ADC
浮空输入数字输入可读取引脚电平,若引脚悬空,则电平不稳定
推挽输出数字输出可输出引脚电平,高电平为VDD,低电平接VSS
开漏输出数字输出可输出引脚电平,高电平为高阻态,低电平接VSS
复用推挽输出数字输出由片上外设控制,高电平为VDD,低电平接VSS
复用开漏输出数字输出由片上外设控制,高电平为高阻态,低电平接VSS

3、外设寄存器

外设寄存器功能模式选择
GPIOx_MODER(GPIO端口模式寄存器)用于配置 GPIO 引脚的工作模式,每个 GPIO 引脚对应 2 位,通过设置这 2 位的值,可以将引脚配置为不同的模式。

00:输入模式;01:通用输出模式;10:复用功能模式;11:模拟模式。

GPIOx_OTYPER(GPIO端口输出类寄存器)当 GPIO 引脚配置为输出模式(通用输出或复用功能输出)时,该寄存器用于选择输出类型,即推挽输出或开漏输出。每个 GPIO 引脚对应 1 位。0:推挽输出;1:开漏输出。
GPIOx_OSPEEDR(GPIO端口输出速度寄存器)用于配置 GPIO 引脚的输出速度,每个 GPIO 引脚对应 2 位。输出速度影响引脚的信号上升和下降时间,不同的速度适用于不同的应用场景。00:低速;01:中速;10:高速;11:超高速。
GPIOx_PUPDR(GPIO端口上拉/下拉)用于配置 GPIO 引脚的上拉或下拉电阻,每个 GPIO 引脚对应 2 位。上拉或下拉电阻可以确保引脚在没有外部信号输入时保持稳定的电平状态。00:无上下拉;01:上拉;10:下拉;11:保留。
GPIOx_IDR(GPIO端口输入数据寄存器)用于读取 GPIO 引脚的输入电平状态。该寄存器是只读的,每个引脚对应 1 位,读取相应的位可以获取该引脚当前的电平(高电平或低电平)。
GPIOx_ODR(GPIO端口输出数据寄存器)用于设置 GPIO 引脚的输出电平状态。当 GPIO 引脚配置为输出模式时,向该寄存器的相应位写入 0 或 1 可以将引脚设置为低电平或高电平。
GPIOx_BSRR(GPIO端口置位/复位寄存器)用于原子性地设置或清除 GPIO 引脚的输出电平。该寄存器分为两部分,低 16 位用于置位(将引脚设置为高电平),高 16 位用于复位(将引脚设置为低电平)。
GPIOx_BRR(GPIO端口复位寄存器)专门用于将 GPIO 引脚的输出电平复位(设置为低电平)。该寄存器的每一位对应一个 GPIO 引脚,向相应的位写入 1 可以将对应的引脚设置为低电平。

二、TIM

1、概念

定时器是一种能够对时间进行奇数的硬件设备。它可以按照预设的规则对时钟信号进行计数,当计数值达到设定的阈值时,会触发相应的事件,如产生中断、输出特定的信号等。通过对定时器的配置和使用,开发者可以实现精确的时间控制,满足各种不同的应用需求。

2、工作原理

定时器的核心是一个计数器,它会在时钟信号的驱动下进行计数操作。时钟信号可以来自于内部时钟源(如系统时钟),也可以来自外部时钟源。计数器从初始值开始,每接收到一个时钟脉冲,计数值就会加1(或减1,具体取决于定时器的工作模式)。当计数值达到预设的自动重载函数值时,计数器会产生溢出事件,根据定时器的配置,可能会触发中断、更新输出信号等。 

 计数模式:①递增计数模式;②递减计数模式;③中心对齐模式。

 内部工作框图:

3、PWM脉冲宽度调剂

1、概念:

PWM是一种对模拟信号电平进行数字编码的方法。通过定时器产生一系列脉冲信号,这些脉冲信号的频率通常保持不变,但是脉冲的宽度(即高电平持续的时间)可以根据需要进行调整。通过改变脉冲的宽度,可以等效地控制输出信号的平均电平,从而实现对一些设备的模拟控制。

2、工作原理:

定时器是产生PWM信号的核心部件。定时器内部有一个计数器,它会在时钟信号的驱动下不断计数。同时,还有一个比较寄存器,用于存储一个比较值。当计数器的值小于比较值时,定时器输出高电平;当计数器的值大于比较值时,定时器输出低电平。计数器计数到自动重装载值后会重新归零,开始下一个计数周期。通过改变比较寄存器的值,就可以更改脉冲的宽度。

3、关键参数:

周期:

pwm信号完成一个完整的脉冲循环所需的时间,它决定了pwm信号的频率。周期的倒数就是频率。在定时器中,周期通常由自动重装载值和时钟频率共同决定。

占空比:

指的是脉冲信号中高电平持续时间与整个周期的比值,通常用百分比表示。通过改变占空比,可以控制pwm信号的平均电平。

4、外设寄存器 

外设寄存器功能具体功能位及其作用
TIMx_CR1(定时器控制寄存器1)

该寄存器用于对定时器的基本工作模式和运行状态进行配置和控制。

计数器使能位:当该位置为 1 时,定时器计数器开始计数;置为 0 时,计数器停止计数。计数器方向位:用于设置计数器的计数方向,0 表示向上计数(从 0 开始递增到自动重装载值),1 表示向下计数(从自动重装载值开始递减到 0)。自动重装载预装载使能位:若该位置 1,自动重装载寄存器(TIMx_ARR)的值会在更新事件发生时才被传送到影子寄存器;置 0 时,TIMx_ARR 的值会立即生效单位脉冲模式位:置 1 时,定时器在发生一次更新事件后停止计数,常用于只需要单次定时操作的场景。
TIMx_CCMR1(定时器捕获/比较模式寄存器)主要用于配置定时器的捕获 / 比较通道 1 和通道 2 的工作模式,包括输入捕获模式和输出比较模式。模式选择位:用于选择通道 1 或通道 2 的输出比较模式,例如 PWM 模式 1、PWM 模式 2 等。不同的模式决定了计数器值与比较值的比较方式以及输出引脚的电平变化规则。输入捕获预分频器位:在输入捕获模式下,用于设置输入信号的预分频系数,以减少捕获不必要的信号边沿,提高捕获精度。输出比较预装载使能位:置 1 时,比较寄存器的值会在更新事件发生时才被传送到影子寄存器;置 0 时,比较寄存器的值会立即生效。
TIMx_CCER(定时器捕获/比较使能寄存器)该寄存器用于控制定时器捕获 / 比较通道的使能和极性。捕获/比较使能位:用于使能相应的捕获 / 比较通道。例如,CC1E 置 1 时,通道 1 的捕获或比较功能被使能;置 0 时,功能被禁用。捕获/比较极性位:用于设置捕获 / 比较通道的输入或输出极性。例如,在输入捕获模式下,该位决定是捕获上升沿还是下降沿;在输出比较模式下,决定输出信号的初始电平。
TIMx_PSC(定时器预分频器寄存器)用于设置定时器时钟的预分频系数,从而调整定时器计数器的计数频率。定时器的时钟源通常具有较高的频率,通过设置预分频器,可以将时钟频率降低到合适的范围,以满足不同的定时需求。例如,若预分频系数设置为 10,则计数器每接收到 10 个时钟脉冲才会加 1。
TIMx_ARR(定时器自动重装载寄存器)存储定时器计数器的自动重装载值。当计数器的值达到该寄存器存储的值时,会产生更新事件,计数器可能会重新归零(取决于计数方向和配置)。自动重装载值与预分频系数共同决定了定时器的定时周期。通过改变自动重装载值,可以调整定时器的定时时间。
TIMx_CCR1(定时器捕获/比较寄存器1)在输入捕获模式下,该寄存器用于存储捕获到的计数器值;在输出比较模式下,用于存储与计数器值进行比较的值。输入捕获模式:当定时器检测到指定的输入信号边沿(上升沿或下降沿)时,会将当前计数器的值捕获到 TIMx_CCR1 中,通过分析这些捕获值,可以测量输入信号的周期、脉宽等参数。输出比较模式:计数器的值会不断与 TIMx_CCR1 中的值进行比较,当两者相等时,会根据配置产生相应的输出动作,如改变输出引脚的电平状态,常用于产生 PWM 信号等。

5、看门狗定时器

1、概念(工作原理):

它会在系统正常运行时按照一定的时间间隔进行计数。在系统运行过程中,程序需要定期对看门狗定时器进行 “喂狗” 操作,即重置定时器的计数值。如果由于某种原因(如程序跑飞、硬件故障等)导致系统未能及时 “喂狗”,看门狗定时器就会溢出,进而触发一个复位信号,使系统重新启动,以恢复到正常的工作状态。

2、设置看门狗的步骤:

①确定看门狗的时钟频率

②对时钟频率进行分频

③给看门狗一个看门阈值

④主程序中正常喂狗

三、IIC

1、概述

iic是一种同步串行通信协议,有Philips(现为NXP)开发,广泛用于低速、短距离的多设备通信。iic允许多个设备(包括多个主设备和从设备)共享2根线路:数据线(SDA)和时钟线(SCL)。

2、工作原理 

由主设备控制时钟线(SCL),通过数据线(SDA)与多个从设备通信。每个设备由唯一的地址,主设备通过设备地址选择要通信的设备。

3、应用场景

传感器、EEPROM、RTC(实时时钟)、显示屏等。

4、iic的信号

起始信号(SCL为高电平期间,SDA由高电平向低电平变化)。

终止信号(SCL为高电平期间,SDA由低电平向高电平变化)。

应答信号(接收方接收到数据后,还可以进行下一次8bit数据的接收)。

非应答信号(接收方接收到数据后,不可以进行下一次8bit数据的接收)

数据接收和发送信号。

5、主机和从机通信过程分析

①主机给从机发送数据

②主机从从机读取数据

四、SPI

1、概述

spi是一种同步串行通信协议,用于主从设备之间的高速数据传输。spi是全双工通信,意味着数据可以同时在两个方向上传输。它使用四根信号线:时钟线(SCK)、主设备输入从设备输出线(MISO)、主设备输出从设备输入线(MOSI)和片选线(SS)来进行通信。

 

2、工作原理 

主设备提供时钟信号(SCK),通过数据线(MISO和MOSI)与从设备进行双向数据传输。每个从设备需要一个单独的片选信号(SS)来进行通信。

3、应用场景

存储设备(如Flash、SD卡)、显示屏、传感器、音频解码器等。

4、硬件连接方式

①基本的连接方式(四线)

当一个SPI主机和多个从机进行通信时,会通过片选线 选择和哪一个从机进行通信。

② 三线连接

当单主机单从机进行SPI通信时不需要片选线选择和哪一个从机进行通信,所以在进行连接时只需SCK\MOSI\MISO三根线就可以完成通信。

5、时序分析

spi主从机通信需要通过两个时钟特性进行约定:

1、时钟极性(CPOL):空闲状态下时钟线电平的高低

        时钟极性为1:空闲状态下时钟线保持高电平;

        时钟极性为0:空闲状态下时钟线保持低电平。

2、时钟相位(CPHA):通信进行数据采样(数据读取)在时钟前沿还是时钟后沿

        时钟相位1:在时钟后沿进行数据采样,在时钟前沿进行数据输出;

        时钟相位1:在时钟前沿进行数据采样,在时钟后沿进行数据输出。

五、UART

1、概述

uart一种异步串行通信协议,用于在两个设备之间传输数据。它将数据按位发送,不需要时钟信号进行同步。在uart通信中,数据通过两根线路传输:发送线(TX)和接收线(RX)。它主要用于简单的点对点通信。

2、工作原理 

数据被拆分成多个数据位,并通过串行方式(一个接一个地)发送,接收方根据预定的波特率解析数据。

3、应用场景

常见于调试接口、串口通信、GPS模块、蓝牙、WIFI模块等。

4、数据帧格式

异步通信,双方各自使用自己的时钟信号进行数据传输,由于双方的始终不一样,就算提前约定好了波特率,随着传输数据量的增加,双方数据收发就会累计一定的误差,所以为了避免这个误差,我们需要对传输收发的数据进行约定,规范好收发的格式来消除误差。

 

空闲位:当不进行数据收发时,数据线处于高电平状态

起始位:1bit低电平,一帧数据传输的开始

数据位:5-8bit数据位,传输的数据

校验位:1bit,可有可无

        奇校验:一帧数据传输后保证数据位和校验位1的个数是一个奇数;

        偶校验:一帧数据传输后保证数据位和校验位1的个数是一个偶数。

停止位:1-2bit高电平,一帧数据结束的标志

六、三种总线对比

1、总线

总线:连接多个部件的信息传输线,是各部件共享的传输介质

2、总线类型 

片内总线:连接处理器内核和外设的总线,在芯片内部。

片外总线:连接芯片和其他芯片或者模块的总线。

 

3、模块之间进行总线通信的方式

①串行通信和并行同行

串行通信:

指的是同一时刻只能收或发一个bit位信息,因此只用一根信号线即可。

优点:占用的引脚资源少。

缺点:速度相对较慢。

并行通信

指的是同一时刻可以收或发多个bit位信息,因此需要多跟信号线才行。

优点:速度快。

缺点:占用引脚资源多。

②单工、半双工、全双工通信

单工:

要么收,要么发,只能做接收设备或发送设备。

半双工:

可以收,可以发,但不能同时收发,通信双方只有同一个信道。

全双工:

可以在同一时刻接收和发送。

③同步通信与异步通信

1、同步通信:

同步通信是一种在数据传输过程中,发送方和接收方使用同一个时钟源或通过特定的同步机制来保证双方时钟严格同步的通信方式。在这种方式下,发送方和接收方的时钟信号频率和相位保持一致,从而使数据能够在准确的时间被发送和接收。

优点:

传输效率高,数据传输速率快。

缺点:

硬件成本高,对时钟精度要求高。

2、异步通信:

异步通信是一种发送方和接收方不需要使用同一个时钟源,而是通过在数据中添加起始位、停止位等控制信息来实现数据传输同步的通信方式。

优点:

硬件简单,灵活性高。

缺点:

传输效率低,数据传输效率慢。

4、总结对比

 

相关文章:

单片机总结【GPIO/TIM/IIC/SPI/UART】

一、GPIO 1、概念 通用输入输出口;开发者可以根据自己的需求将其配置为输入或输出模式,以实现与外部设备进行数据交互、控制外部设备等功能。简单来说,GPIO 就像是计算机或微控制器与外部世界沟通的 “桥梁”。 2、工作模式 工作模式性质特…...

信号和槽

connect(信号发送者,发送的信号,信号接收者,信号的处理); 信号函数和槽函数的参数必须是一样的,但信号的参数可以多余槽函数的参数(前面的参数类型必须一致) 是控件和控件间的信号传递,这两个…...

Window下Redis的安装和部署详细图文教程(Redis的安装和可视化工具的使用)

文章目录 Redis下载地址:一、zip压缩包方式下载安装 1、下载Redis压缩包2、解压到文件夹3、启动Redis服务4、打开Redis客户端进行连接5、使用一些基础操作来测试 二、msi安装包方式下载安装 1、下载Redis安装包2、进行安装3、进行配置4、启动服务5、测试能否正常工…...

1.2.3 使用Spring Initializr方式构建Spring Boot项目

本实战概述介绍了如何使用Spring Initializr创建Spring Boot项目,并进行基本配置。首先,通过Spring Initializr生成项目骨架,然后创建控制器HelloController,定义处理GET请求的方法hello,返回HTML字符串。接着&#xf…...

数据可视化02-PCA降维

一、PCA PCA做什么?找坐标系。 目标?二维降到一维,信息保留最多。 怎么样最好?数据分布最分散的方向(方差最大),作为主成分(坐标轴)。 二、怎么找主成分? …...

大连指令数据集的创建--数据收集与预处理_02

1.去哪儿爬虫 编程语言:Python爬虫框架:Selenium(用于浏览器自动化)解析库:BeautifulSoup(用于解析HTML) 2.爬虫策略 目标网站:去哪儿(https://travel.qunar.com/trav…...

xr-frame 3D Marker识别,扬州古牌坊 3D识别技术稳定调研

目录 识别物体规范 3D Marker 识别目标文件 map 生成 生成任务状态解析 服务耗时: 对传入的视频有如下要求: 对传入的视频建议: 识别物体规范 为提高Marker质量,保证算法识别效果,可参考Marker规范文档 Marker规…...

【网络安全 | 漏洞挖掘】利用文件上传功能的 IDOR 和 XSS 劫持会话

未经许可,不得转载。 本文涉及漏洞均已修复。 文章目录 前言正文前言 想象这样一个场景:一个专门处理敏感文档的平台,如保险理赔或身份验证系统,却因一个设计疏漏而成为攻击者的“金矿”。在对某个保险门户的文件上传功能进行测试时,我意外发现了一个可导致大规模账户接管…...

达梦数据库系列之安装及Mysql数据迁移

达梦数据库系列之安装及Mysql数据迁移 1. 达梦数据库1.1 简介1.2 Docker安装达梦1.2.1 默认密码查询1.2.2 docker启动指定密码 1.3 达梦数据库连接工具1.3.1 快捷键 2 Mysql数据库迁移至达梦2.1 使用SQLark进行数据迁移 1. 达梦数据库 1.1 简介 DM8是达梦公司在总结DM系列产品…...

FS800DTU联动OneNET平台数据可视化View

目录 1 前言 2 环境搭建 2.1 硬件准备 2.2 软件环境 2.3 硬件连接 3 注册OneNET云平台并建立物模型 3.1 参数获取 3.2 连接OneNET 3.3上报数据 4 数据可视化View 4.1 用户信息获取 4.2 启用数据可视化View 4.3 创建项目 4.4 编辑项目 4.5 新增数据源 4.6 数据过滤器配置 4.6 项…...

ffmpeg avdevice_register_all 注册设备的作用

在 FFmpeg 中,avdevice_register_all() 是一个用于注册所有输入和输出设备的函数。它是 FFmpeg 的 libavdevice 模块的一部分,专门用于处理音频和视频的输入/输出设备(如摄像头、麦克风、屏幕捕获等)。 以下是对 avdevice_regist…...

使用JS遍历JSON数组

在JavaScript中,遍历JSON对象或数组是一个常见的操作,尤其是在处理复杂数据结构时。这里有几种不同的方法可以根据你的需求进行遍历。 1. 遍历JSON对象 如果你有一个JSON对象(实际上在JavaScript中,所有的对象都可以视为JSON对象…...

Go基于协程池的延迟任务调度器

原理 通过用一个goroutine以及堆来存储要待调度的延迟任务,当达到调度时间后,将其添加到协程池中去执行。 主要是使用了chan、Mutex、atomic及ants协程池来实现。 用途 主要是用于高并发及大量定时任务要处理的情况,如果使用Go协程来实现每…...

k8S通过代理将集群外的中间件引入集群内访问 —— 筑梦之路

背景说明 有部分中间件是跑在Kubernetes集群之外,我们希望通过service的方式来访问集群外的中间件,比如访问我们k8s集群外的elasticsearch集群。 ES节点本身又处在一个负载均衡IP:192.168.100.100 之后,但是代理的端口号是9202&am…...

Linux 第三次脚本作业

源码编译安装httpd 2.4,提供系统服务管理脚本并测试(建议两种方法实现) 一、第一种方法 1、把 httpd-2.4.63.tar.gz 这个安装包上传到你的试验机上 2、 安装编译工具 (俺之前已经装好了) 3、解压httpd包 4、解压后的httpd包的文…...

使用通义万相Wan2.1进行视频生成

使用通义万相Wan2.1进行视频生成 源代码准备运行环境准备创建Python虚拟环境并激活安装依赖包 模型下载生成视频官网的视频生成例子简单描述场景视频生成示例详细描述场景视频生成示例 最近通义万相开源了其视频生成模型。模型有两个版本,一个是1.3B的,一…...

AI技术为旅行社打开新流量入口

2月28日消息,在“2025旅业发展高峰论坛”上,马蜂窝交易中心总经理绳志成在主题演讲中系统性阐述了AI技术对自由行市场的颠覆性影响。 绳志成介绍,传统“大而全”的跟团游产品吸引力持续走低,用户更愿意为“小众秘境”、“在地文化…...

SuperMap iClient3D for WebGL 影像数据可视范围控制

在共享同一影像底图的服务场景中,如何基于用户权限体系实现差异化的数据可视范围控制?SuperMap iClient3D for WebGL提供了自定义区域影像裁剪的方法。让我们一起看看吧! 一、数据制作 对于上述视频中的地图制作,此处不做讲述&am…...

API网关相关知识点

目录 API网关基础知识总结 | JavaGuide Spring Cloud Gateway常见问题总结 | JavaGuide API网关 | 小傅哥 bugstack 虫洞栈 美团: 百亿规模API网关服务Shepherd的设计与实现 vivo: 微服务 API 网关架构实践 唯品会: 高吞吐消息网关的探索与思考 API网关基础知识总结 | J…...

Opencv 图像形态学操作

3.1 形态学-腐蚀操作 img cv2.imread(CSDN.png) cv2.imshow(CSDN, img) cv2.waitKey(0) cv2.destroyAllWindows如果腐蚀核的覆盖区域内的所有像素值都满足条件(阈值),则中心像素的值保持不变;如果有任何像素值不满足条件&#x…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...