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

单片机学习笔记---串口通信(1)

目录

通信的基本概念

通信的方式

1.按照数据传送的方式,可分为串行通信和并行通信。

1.1串行通信

1.2并行通信

2.按照通信的数据同步方式,又可以分为异步通信和同步通信。

2.1 异步通信

2.2同步通信

3.按照数据的传输方向,又可以分为单工通信,半双工通信,还有全双工通信。

3.1单工通信

3.2半双工通信

3.3全双工通信

4.总线

通信速率

串口通信简介  

串口通信

串口

接口标准和接口种类

接口标准

接口种类

常见通信接口

接口上的引脚定义

逻辑电平

串口数据收发线:交叉连接

通信协议


通信的基本概念

随着单片机的系统的广泛应用和计算机网络的技术普及,单片机的通信功能越来越重要。 像在WiFi、蓝牙、GPS、GSM和GPRS这些应用当中,充分体现了串口通信的重要性。 学习51单片机的重点难点,主要体现在51的中断、定时计数器、以及串口通信这些功能。中断、定时计数器再前四节已经搞定,本节就来学习一下串口通信。

下面我们就来看一下串口通信相关的一些基本概念。 我们知道51单片机不仅可以实现串口通信还可以通过IO口模拟实现多种其他的一些通信,比如SPI,IIC等等,学习这些通信前,我们就很有必要了解一下通信的一些基本概念。

通信的方式

可以分为很多种:

按照数据传送的方式,可分为串行通信和并行通信。

按照通信的数据同步方式又可以分为异步通信和同步通信。 按照数据的传输方向,又可以分为单工通信,半双工通信,还有全双工通信。

下面就逐个来介绍。

1.按照数据传送的方式,可分为串行通信和并行通信。

1.1串行通信

在串行通信当中,是指使用一条数据线将数据一位一位的一次进行传输,每一位数据占据固定的时间长度。只需要很少的几条线就可以在系统之间进行数据交换,特别适用于计算机与计算机,计算机与外部设备的远距离的传输,这样,可以大大的节约成本,因为它只需要很少的线。

那像在数据传输过程当中,它的数据是依靠一根线来进行一位一位的传输,它优先传输低位(D0),最后在传输高位(D7),字节的数据就通过8次传输到接收设备当中。

串行通信它有一个特点就是传输线很少,从这张图当中也可以看到,它只需要一根线,对于长距离传输的这些应用,它的成本是非常低的。 可以利用电话线,或者是一些网线这些现成的设备来进行传输,但是传输的控制,以及稳定性就相对来说要复杂一些。 因为你这个数据要在一条数据线上面进行传输,你需要对它的数据进行处理,一位的一位的发送,那相比于并行通信来说,相对来说要复杂一点。

1.2并行通信

那我们再来看一下并行通信。

它通常是将这个数据的字节的各个位(一个字节为8位)按照多条数据线同时进行传输,通常是有8位,16位,32位的数据一起传输。

那像我们这张图当中,要传输一个字节的数据,那这里就有8根并行线接到接收设备,一个字节就是通过每一根线传输一位,总共就8位,一次性传输过去。

这种通信方式的特点,是控制简单,传输速度快。一个字节一下就传过去了,不需要一位一位的传。

我们前面的串行通信是一个字节分8次,一次一位的传输,而我们并行通信是8位同时传输,这样的速度,比串行通信肯定是更快的。

但是如果说由于这个传输线比较多,那对于长距离传输的一些应用就增加了比较大的成本。

比如说我们在长距离传输的时候,如果使用串行通信的时候,它只要一根数据线,而这个并行通信,它需要8根,所以成本相对于串行通信来说比较高的。并且,我们长距离传输的时候,接收方的各位同时接收存在困难,所以它的抗干扰能力,就要差一些。

2.按照通信的数据同步方式又可以分为异步通信和同步通信。

2.1 异步通信

异步通信:通信双方各自约定通信速率

异步通信是指通信的发送和接收设备使用各自的时钟控制数据的发送和接收过程,为了使双方收发协调,要求发送的设备和接收的设备的时钟尽可能一致。

这是什么意思?因为它们要使用各自的时钟来控制它的数据发送和接收,如果说你们这两个设备发送设备和接收设备的时钟都不相同的话,那么它接收的数据也可能是错的或者是乱的,所以在异步通信的过程当中,要求发送设备和接收设备它的时钟尽可能要一致。

异步通信是以字符为单位进行传输的,字符与字符之间的间隙是任意的。但每个字符中的个位是以固定的时间传输,也就是说字符之间的间隔时间或者说间隙是任意的。

但是,它字符之间不一定有位间隔的整数倍关系,但是同一个字符内的各个位之间的间隙是位间隔的整数倍关系。

我们来看一下,对于异步通信来说,字符帧的格式是这样的。

有起始位,然后紧接着跟着八个数据位,它也有校验位和停止位,这是一帧一帧的字符数据,总共是11个,也就是说字符帧通常含有11个位。

异步通信的特点是不要求收发双方的时钟严格一致,实现容易。

比如说我们发送设备的时钟的频率假设是11.0592,那这个接收设备不是说一定要按照11.0592兆,它可以有一定的有误差范围,这样对于我们接收设备来说,实现这么大的时钟就比较容易一点,而不是精确,设备开销也较小,因为它采用的是一位一位的进行传输,但每个字符之间要附加2~3个位,用来作为起始、校验,停止这些位。 各帧与各帧之间因为有了间隔,所以它的传出效率不是很高。

因为我们可以看到这张图,在每一个字符与字符之间,这个间隔时间是不同的。因为有了这个间隔,所以在传输数据的时候,它的效率就不是很高。

2.2同步通信

同步通信:通信双方靠一根时钟线来约定通信速率

同步通信是要建立发送方时钟对接收方时钟直接的控制,从这张图当中我们可以看到,比如说我们这里计算机甲是发送方,计算机乙是接收方,那么发送方的时钟是直接控制接收方的,所以,让我们这双方的时钟完全相同,也就是同步这就是同步通信此时,传输数据的位之间的距离是位间隔的整数倍。

同时传输的字符间是不留间隙的,也就保持了这个同步的关系。

发送方对接收方的同步可以通过两种方式来实现,像这像下面这两张图。

一种是外同步,一种是自同步。

外同步是通过发送方的时钟来控制接收方的时钟,这就可以达到外同步。

然后,自同步的话是通过发送方控制发送的数据和时钟实现自同步。

通俗来讲,外同步就是时钟线传输时钟信号,数据线传输数据信号。自同步就是一条线上同时传输了时钟和数据信号。

异步和同步的概念,可以说同步就像两人打电话,异步就是发短信。这种同步通信我们用的不是很多,主要是异步通信那一块,像串口通信,它就是异步的通信。

3.按照数据的传输方向,又可以分为单工通信,半双工通信,还有全双工通信。

3.1单工通信

单工通信是指数据传输仅按照方向来进行传输,它不能实现反向的传输

从这张图当中我们也可以看得到,发送方是按照发送方到接收方的这个数据传输方向,不能实现反方向的传输,所以,它是单工的通信。

3.2半双工通信

半双工的通信是数据传输可以按照两个方向进行传输,一个是发送,一个是接收但它是需要进行分时才能进行发送和接收,那从这张图我们也可以看到。

假如在时间1这个点是处于发送的状态,就是从发送设备到接收设备传输数据,如果在时间2的时候,要接收数据,那从接收设备来发送数据到我们的发送设备,从而接收。所以,在发送和接收这一块,它的时间点是不一样的,也就进行了分时进行传输。

3.3全双工通信

全双工的通信是指数据可以同时进行两个方向的传输

比如说我们从这张图当中可以看到,它可以既可以作为发送,又可以作为接收,可以同时进行。

补充:

4.总线

总线就是连接各个设备的数据传输线路(类似于一条马路,把路边各住户连接起来,使住户可以相互交流)

通信速率

下面我们来介绍概念:通信速率。

衡量通信性能的重要指标参数就是这个通信的速率,通常也叫比特率。 比特率是每秒钟传输二进制代码的位数,它的单位是位/秒。 比如说我们每秒钟传输240个字符。按照前面的格式,字符它包含起始位、停止位,然后中间有八个数据位,假如没有校验位的话,那么1字符的一帧数据含有10个位,那比特率是多少?结果是2400bps。

  在后面我们还会遇到一个概念,就是波特率。 通常我们接触比较多的是波特率,我们可以把它看成是比特率。

波特率表示每秒钟传输了多少个码元(串口通信的速率(发送和接收各数据位的间隔时间))。而比特率是每秒钟传输二进制代码的位数。 这个码元是通信信号调试的概念,通信中常用的时间间隔相同的符号表示二进制的数字,这样的信号称为码元。

第一种情况:比如常见通信中用0V表示数字0,5V表示数字1,每个码元可以表示两种状态,0和1,所以一个码元也就等于一个二进制的比特位此时,波特率的大小跟比特率的大小是一致的

第二种情况:如果在通信传输过程当中,用0V,2V,4V,6V等等来表示二进制的话,那表示0V就是00,2V是01,4V是10,6V是11,每个码元可以表示四种状态,也就是两个二进制的比特位,00 01 10 11,就是用两个比特位来表示一个码元所以码元是二进制的比特位的一半,这个时候的波特率就是比特率的一半

我们常见的通信当中,码元是表示两种状态,也就是0和1,跟我们的二进制位是一样的。所以,我们也可以把波特率看成是比特率。在我们常见的通信当中,基本上是这样的,所以我们在通信应用当中,我们通常也叫波特率,很少听到比特率这种叫法。大家要知道它们的区别。

串口通信简介  

接下来我们来看一下51单片机的串口的介绍,首先我们来看一下串口通信的简介。

串口通信

是指外设和计算机间通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。

串口

是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信。

单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大的扩展了单片机的应用范围,增强了单片机系统的硬件实力。

51单片机内部自带UART(Universal Asynchronous Receiver Transmitter,通用异步收发器),可实现单片机的串口通信。

串口是一种接口标准。它规定了接口的电器标准,没有规定接口插件的电缆以及使用的协议,它规定的是接口标准,厂家必须按照这个接口标准来做串口的标准接口。

所以,在我们的串口设备当中,通常会见到它的这个接口,比如我们下面这张图当中的DB9或者是DB25的这种标准接口。

不过我们现在应用比较多的是这种DB9的孔。

接口标准和接口种类

接口标准

下面我们来看一下接口标准。

串口通信的结构标准有很多:RS232C、RS232、RS422A、RS485等等,常用的是这种RS232和RS485。

RS232其实就是在RS232C的基础上的改进版本,它的原理是一样的,那所以这里我们就以RS232C这个接口进行讲解。

RS232C是美国电子工业协会在1969年修订的RS232C的标准,定义了数据终端设备与数据通信设备之间的物理接口标准,规定了使用25帧的连接器,我们简称DB25。 连接器的尺寸以及每个插针的排列位置,都有明确的定义,这个就是DB25的接口标准的图。

这个针脚的排序在途中已经标出来了,第一行从左1号开始到13号,第二行从左往右是14~25号。

现在还有一种九针的RS232C非标准连接接口,我们通常也称为DB9。

我们都见到的大多数设备是使用DB9的这种接口,DB25和DB9这种接口的接头有公头和母头之分,其中带针状的是公头,带孔状的这个接头是母头,下面这张图我们可以看到。

公头和母头它的管脚顺序是不一样的,从这张图当中我们可以看得到排序方式正好是相反的。所以,自己在做这个封装图的时候,要注意你的设备是使用公头还是母头。这种接口现在多见于台式电脑。

接口种类

其实现在还有一种常见的接口,叫做VGA接口。VGA接口共有15针,分成3排,每排5个孔,显卡上应用最为广泛的接口类型。VGA接口是传输视频的,英文名叫做Video Graphics Array视频图形阵列和DB9(用来传输数据的)外观长得有点像,但是完全不同的接口,不要搞混了。

现在笔记本电脑大部分都是USB接口

左边插USB,右边就是串口线路,就可以和单片机连接

我们开发板上的这个位置就是USB和串口之间电平的相互转换,转换之后就可以在电脑上使用串口这样的功能了。

然后电脑端也就是STC那个软件上有一个东西叫串口助手来帮助我们收发数据显示。

常见通信接口

在这里总结一下常见通信接口,相互比较一下:

PS:

UART:通用异步收发器串口;异步串口。

可挂载多个设备特点的接口都可以称为总线:

IIC一般都读作 I方C总线

SPI总线

1-Wire读作one-wire(单总线)

CAN总线一般应用在汽车领域(把很多连在一起的传感器用CAN总线挂起来,用差分信号传输,传输距离很远,稳定性也很好)同步的通信方式一般都带有一个时钟线SCL/SCLK,异步的通信方式一般都不带时钟线。

下面分别介绍表格中的几种通信接口:

51单片机的UART:

STC89C52有1个UART

STC89C52的UART有四种工作模式:

模式0:同步移位寄存器

模式1:8位UART,波特率可变(常用)

模式2:9位UART,波特率固定

模式3:9位UART,波特率可变

接口上的引脚定义

接口上的脚都有明确的定义,我们来看一下。

下面这张图是RS-232C接口标准的引脚定义。

图中带括号的是DB9的脚位,而没有带括号的是DB25的脚位。 这么多脚是不是所有的脚位都用上了?在串口通信当中,我们通常一般只会用到三个脚,哪三个脚?串行发送和接收肯定是必不可少的,2脚和3脚都会用到,然后还有GND,也就是信号地脚(5脚)。

所以通常我们在串口通信当中应用的比较多的三个脚就是2、3、5,也就是TXD、RXD和GND。

尤其是GND,如果由于在做串口通信的时候,它只顾发送和接收这两个脚位的连接,忽略了GND直接会导致通信两设备之间没有共地,通信可能就会出现错误,所以在串口通信当中一定要记住设备之间要进行共地,也就是要连接这个GND 5脚。

逻辑电平

在RS-232C标准当中,它对逻辑电平也进行了规定。

比如,在TXD和RXD数据线上面,

逻辑1电平范围是-3~15V的电压范围。 逻辑0的话,它是3V到15V的电压。

这个跟我们前面学习单片机的高电平1是5V,0是0V是不一样的。

我们单片机通常是TTL的电平,所以我们在使用51单片机的时候,要将TTL电平跟RS-232的电平进行转换的话,它需要转换的东西,就是MAX232电平转换芯片。

因为我们的串口通信是RS232的电平,而我们单片机的串口电平是TTL的电平,所以通过MAX232这个芯片可以将RS232电平跟TTL的电平进行转换,这样就可以实现通信了。

电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种:

TTL电平:+5V表示1,0V表示0(单片机走的电平)

RS232电平:-3~-15V表示1,+3~+15V表示0(比如DB9接口走的电平)

以上两种电平的传输距离也才十多米。

RS485电平:两线压差(两根线之间的电压差)+2~+6V表示1,-2~-6V表示0(差分信号)

RS485电平能传一千米以上。

串口数据收发线:交叉连接

在串口通信当中,我们还要注意的一点是串口数据收发线要进行交叉的连接。 何为交叉连接?

是指在发送方和接收方发送方的TXD(Transmit exchange data)要连接接收方的接收管脚RXD,我发送的数据才能到达接收设备的接收引脚。

同样的,我们发送方的接收引脚要连接接收方的发送引脚。发送数据就直接传到我们的接收设备当中。

这就是交叉的连接。

还有一点就是要注意:两个设备之间要进行共GND。

简单双向串口通信有两根通信线(发送端TXD和接收端RXD)

TXD与RXD要交叉连接

当只需单向的数据传输时,可以直接一根通信线

当电平标准不一致时,需要加电平转换芯片

PS:VCC是供电的(电源的供电电压),如果设备1和设备2都有独立电源的话,可以不接VCC,如果比如说设备2是一个模块的话,它不会独立供电,那么设备1需要向设备2供电,也就是接个VCC。VCC和GND其实就是电源的正负极,通信就是中间两根线。

通信协议

在前面我们介绍了,RS-232C没有规定协议的标准,但是通常我们做串口通信的时候是按照96-N-8-1的格式。

这个96是代表我们的通信波特率是9600BPS,也就是每秒钟传输的二进制的位数9600 bps。因为通常使用的是异步串口通信,也就是说没有时钟线,两个设备要进行通信的话,必须要保持一致的波特率当然波特率不一定必须要9600,也可以是4800,还可以是115200。当然51单片机它也跑不到这么高,我们是只举例子。比如我们发送方使用的是9600,我们在写程序的时候,接收方的波特率也必须是9600。保持波动率是一致的。

然后这个N代表的是无校验位,由于在串口通信当中,相对更容易受到外部的干扰,导致传输数据出现偏差,可以在传输过程当中加上这个校验位来解决这个问题。

校验方法有奇校验,还有偶校验,以及0校验(也是无校验)。

通常我们在串口通信当中用的比较多的是无校验,也就是N。 然后,

这个8是指传输的数据位,通常是8位,也就是一个字节。在数据格式前面,我们介绍过异步通信有有5位,也有6位、7位,当然我们用的比较多的是8位,也正好对应我们一个字节。   

然后这个1代表的是停止位,串口通信的数据包从起始信号开始直到停止信号结束,数据包的起始信号是由逻辑电平0这个数据位表示,数据包停止位信号可以是0.511.52两个逻辑1的数据位表示只要双方约定一致就可以了。

我们通常使用的是一个停止位,所以,通常的这个协议标准我们是按照这个96-N-8-1的这种格式。其中96,我们通常可以更改它的波动率,后面的几种我们通常是按照N-8-1。

没讲完下一篇继续.....

单片机学习笔记---串口通信(2)-CSDN博客

相关文章:

单片机学习笔记---串口通信(1)

目录 通信的基本概念 通信的方式 1.按照数据传送的方式,可分为串行通信和并行通信。 1.1串行通信 1.2并行通信 2.按照通信的数据同步方式,又可以分为异步通信和同步通信。 2.1 异步通信 2.2同步通信 3.按照数据的传输方向,又可以分为…...

熔断机制解析:如何用Hystrix保障微服务的稳定性

微服务与系统的弹性设计 大家好,我是小黑,在讲Hystrix之前,咱们得先聊聊微服务架构。想象一下,你把一个大型应用拆成一堆小应用,每个都负责一部分功能,这就是微服务。这样做的好处是显而易见的,更新快,容错性强,每个服务可以独立部署,挺美的对吧?但是,问题也随之而…...

第三节 zookeeper基础应用与实战2

目录 1. Watch事件监听 1.1 一次性监听方式:Watcher 1.2 Curator事件监听机制 2. 事务&异步操作演示 2.1 事务演示 2.2 异步操作 3. Zookeeper权限控制 3.1 zk权限控制介绍 3.2 Scheme 权限模式 3.3 ID 授权对象 3.4 Permission权限类型 3.5 在控制台…...

C# Socket通信从入门到精通(21)——Tcp客户端判断与服务器断开连接的三种方法以及C#代码实现

前言 我们开发的tcp客户端程序在连接服务器以后,经常会遇到服务器已经关闭但是作为客户端的我们不知道,这时候应该应该有一个机制我们可以实时监测客户端和服务器已经断开连接,如果已经断开了连接,我们应该及时报警提示用户客户端和服务器已经断开连接,本文介绍三种可以监…...

vulnhub-->hacksudo-Thor靶机详细思路

目录 1. IP探测2.端口服务扫描3.网站漏洞扫描4.目录扫描5.信息分析6.破壳漏洞(Shellshock)nmap---漏洞检测CVE-2014-6271 7.nc反弹8.提权9.service提权 1. IP探测 ┌──(root㉿kali)-[~] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:10:3c:9b, IPv4: 19…...

Java外卖小程序管理系统

技术架构: springboot ssm mysql redis 有需要该项目的小伙伴可以私信我你的Q。 功能描述: 商品管理:新增商品、所有商品 菜单管理:菜单管理、菜单分类 订单管理:订单总览(包括未付款、已付款、已…...

挖掘嵌入式系统在物联网和智能设备中的应用潜力

1. 物联网的发展和嵌入式系统 介绍物联网的定义和特点,以及其在各个领域中的应用。探讨物联网对嵌入式系统的需求,包括低功耗、小型化、实时性等特性,以及对嵌入式系统的数据处理和通信能力的要求。 2. 嵌入式系统在智能设备中的应用 分析…...

用docker 配置scala spark环境

要使用Docker配置Scala和Spark环境,您可以按照以下步骤进行操作。以下是一个基本的示例,您可能需要根据您的具体需求进行调整。 安装Docker: 在您的系统上安装Docker。您可以从Docker官方网站下载并安装适用于您操作系统的版本。 创建Dockerfile: 在您的…...

医疗处方架构设计和实现的实战经验总结

医疗处方是医生开具给患者的药物治疗建议。在现代医疗系统中,设计和实现一个高效而可靠的医疗处方架构至关重要。本文将介绍医疗处方架构的设计原则和关键组件,以及如何实现一个可扩展和安全的处方管理系统。 内容: 1. 引言 - 医疗处方的…...

专业140+总分410+华南理工大学811信号与系统考研经验华工电子信息与通信,真题,大纲,参考书。

23考研已经落幕,我也成功的上岸华工,回首这一年多的历程,也是有一些经验想和大家分享一下。 首先说一下个人情况,本科211,初试成绩400分。专业课140。 整体时间安排 对于考研,很重要的一环就是时间安排&…...

软件测试学习笔记-测试用例的编写

7中测试分类 按照阶段可划分单元测试、集成测试、系统测试、验收测试。代码可见度划分黑盒测试、灰盒测试、白盒测试 单元测试:针对源代码的测试 集成测试:针对接口进行测试 系统测试:针对功能和非功能的测试 验收测试:公测、内测…...

『运维备忘录』之 Kubernetes(K8S) 常用命令速查

一、简介 kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写,是一个开源的,用于管理云平台中多个主机上的容器化的应用。kubernetes是基于容器技术的分布式架构解决方案,具有完备的集群管理能力&a…...

Android SDK 上传 Maven 喂奶级教程

最近领导给安排了个任务,让我把我们现有的一个 SDK 上传到 Maven 上去,方便客户直接用 gradle 依赖,不再需要拷贝 jar 和 so 了,此前我也看过一些相关的文章我想问题也不大,觉得工作量也就一两天的事情,主要…...

R语言绘图教程 | 双侧条形图绘制教程

写在前面 双侧条形图在我们的文章中也是比较常见的,那么这样的图形是如何绘制的呢? 以及它使用的数据类型是什么呢? 这些都是我们在绘制图形前需要掌握的,至少我们知道绘图的数据集如何准备,这样才踏出第一步。 今天的教程,我们会从数据的准备,以及数据如何整理,以及…...

ubuntu篇---ubuntu安装python3.9

ubuntu篇—ubuntu安装python3.9 在ubuntu上安装Python有两种方法:在线安装和源码编译安装。 方法1:使用apt在线安装 1.更新软件包列表并安装必备组件: $ sudo apt update $ sudo apt install software-properties-common2.将Deadsnakes PPA添加到系统…...

git初始化一个远程空仓库

目录 1. 仅做简单初始化2. 推送现有的非仓库文件夹3. 推送现有的仓库 git初始化一个远程空仓库主要有以下三种途径: 仅做简单初始化,例如添加 README.md 和 .gitignore。将现有的文件夹(非仓库)推送到远程仓库。将现有的仓库推送…...

装箱问题+宠物小精灵之收服+数字组合——01背包

一、装箱问题 (裸题) 有一个箱子容量为 V&#xff0c;同时有 n 个物品&#xff0c;每个物品有一个体积&#xff08;正整数&#xff09;。 要求 n 个物品中&#xff0c;任取若干个装入箱内&#xff0c;使箱子的剩余空间为最小。 输入 第一行是一个整数 V (0 < V ≤ 20000)&…...

记一次页面接口502问题:“502 Bad Gateway”

接收别人的项目进行迭代&#xff0c;项目部署到服务器上之后&#xff0c;有一个接口数据刷不出来&#xff0c;一直502 后来联想到网关的问题&#xff0c;想通过设置白名单的方式解决&#xff0c;设置之后依旧不行。 查看nginx日志发现报错&#xff1a; *169 connect() failed …...

Oracle systemstate、gdb、dbx介绍

当数据库出现严重的性能问题或者hang了的时候&#xff0c; 可能最常用的办法就是重启数据库&#xff0c;简单有效解决问题&#xff1b;但是重启后如何追踪问题的根本原因成了难题&#xff0c;很多信息随着重启也消失不见了&#xff0c;让追查问题变的十分棘手&#xff0c;这时就…...

Stable Diffusion 模型下载:RealCartoon-Anime - V10

文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十下载地址模型介绍 这个检查点是从 RealCartoon3D 检查点分支出来的。它的目标是产生更多的“动漫”风格,因为我喜欢动漫。:)我知道有很多人做得很好(...

课时22:内置变量_字符串相关

2.4.2 字符串相关 学习目标 这一节&#xff0c;我们从 基础知识、简单实践、小结 三个方面来学习 基础知识 字符串相关的变量解析 字符串计数${#file} 获取字符串的长度字符串截取 - 语法为${var:pos:length} 表示对变量var从pos开始截取length个字符&#xff0c;pos为…...

软件应用实例分享,电玩计时计费怎么算,佳易王PS5游戏计时器系统程序教程

软件应用实例分享&#xff0c;电玩计时计费怎么算&#xff0c;佳易王PS5游戏计时器系统程序教程 一、前言 以下软件教程以 佳易王电玩计时计费管理系统软件V17.9为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 点击开始计时后&#xff0c;图片…...

架设游戏服务器租用价格?腾讯云和阿里云价格对比

游戏服务器租用多少钱一年&#xff1f;1个月游戏服务器费用多少&#xff1f;阿里云游戏服务器26元1个月、腾讯云游戏服务器32元&#xff0c;游戏服务器配置从4核16G、4核32G、8核32G、16核64G等配置可选&#xff0c;可以选择轻量应用服务器和云服务器&#xff0c;阿腾云atengyu…...

ag-Grid:对数据变化的单元格进行高亮显示

对单元格高亮 问:ag-grid 当 rowData 数据变化,如何对数据变化的党员个进行高亮? 解析: 在ag-Grid中,想要对数据变化的单元格进行高亮显示,你可以使用以下步骤来实现: 监听数据变化:首先,你需要监听rowData的变化。这可以通过在你的组件中观察rowData属性的变化来实…...

Oracle 几种行转列的方式 sum+decode sum+case when pivot

目录 原始数据&#xff1a; 方式一&#xff1a; 方式二&#xff1a; 方式三&#xff1a; unpivot的使用&#xff1a; 原始数据&#xff1a; 方式一&#xff1a; select t_name,sum(decode(t_item, item1, t_num, 0)) item1,sum(decode(t_item, item2, t_num, 0)) item2,s…...

[AIGC] Tomcat:一个简单 and 高效的 Java Web 服务器

Tomcat&#xff08;Tomcat Server&#xff09;是 Apache 基金会下的一个开源项目&#xff0c;它是一个简单 and 高效的 Java Web 服务器&#xff0c;支持 Servlet 2.5、JSP 2.2 和 EL 2.2 规范。Tomcat 是当今最受欢迎的 Java Web 服务器之一&#xff0c;它在 Java 世界中被广泛…...

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Toggle组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Toggle组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Toggle组件 组件提供勾选框样式、状态按钮样式及开关样式。 子组件 仅当Toggl…...

使用耳机壳UV树脂制作私模定制耳塞有哪些选择呢?

私模定制耳塞人士的选择可以从以下几个方面考虑&#xff1a; 专业经验&#xff1a;选择有丰富经验的私模定制耳塞人士&#xff0c;能够更好地理解用户需求&#xff0c;提供更专业的建议和服务。可以通过查看其作品和客户评价来了解其经验和口碑。材料质量&#xff1a;选择使用…...

什么是集群服务器

近一段时间来&#xff0c;集群服务器被广大站长热议&#xff0c;所谓集群服务器就是指很多台服务器把它们集中在一起来进行同一种服务。集群服务器也可以由很多个的计算机并行去计算&#xff0c;这样可以获得非常高的计算速度&#xff0c;提升服务器整体的工作效. 其实我们都知…...

HCIA-HarmonyOS设备开发认证V2.0-3.轻量系统内核基础

目录 一、前言二、LiteOS-M系统概述三、内核框架3.1、CMSIS 和 POSIX 整体架构3.2、LiteOS-M内核启动流程 四、内核基础4.1、任务管理4.2、时间管理(待续)4.3、中断管理(待续)4.4、软件定时器(待续) 五、内存管理5.1、静态内存(待续)5.2、动态内存(待续) 六、内核通信机制6.1、…...

【JavaWeb】头条新闻项目实现 基本增删改查 分页查询 登录注册校验 业务功能实现 第二期

文章目录 一、为什么使用token口令二、登录注册功能2.1 登录表单提交后端代码&#xff1a; 2.2 根据token获取完整用户信息代码实现&#xff1a; 2.3 注册时用户名占用校验代码实现&#xff1a; 2.4 注册表单提交代码实现&#xff1a; 三、头条首页功能3.1 查询所有头条分类3.2…...

HiveQL——不借助任何外表,产生连续数值

注&#xff1a;参考文章&#xff1a; HiveSql一天一个小技巧&#xff1a;如何不借助其他任何外表&#xff0c;产生连续数值_hive生成连续数字-CSDN博客文章浏览阅读1.3k次。0 需求描述输出结果如下所示&#xff1a;12345...1001 问题分析方法一&#xff1a;起始值&#xff08;…...

Docker容器监控-CIG

目录 一、CIG说明 1. CAdvisor 2. InfluxDB 3. Grafana 二、环境搭建 1. 创建目录 2. 编写 docker-compose.yml 3. 检查并运行容器 三、进行测试 1. 查看 influxdb 存储服务 是否能正常访问 2. 查看 cAdvisor 收集服务能否正常访问 3. 查看 grafana 展现服务&#…...

python调用golang中函数方法

一、原因说明&#xff1a;由于simhash方法有多种实现方式&#xff0c;现python中simhash方法与golang中的不一样&#xff0c;需要两者代码生成结果保持一致&#xff0c;故采用python中的代码调用golang编译的so文件来实现。 环境配置&#xff1a;①Windows10系统要有gcc环境&a…...

Ps:颜色取样器工具

颜色取样器工具 Color Sampler Tool允许用户从图像中设置特定的颜色取样点&#xff0c;然后利用“信息”面板查看该点在不同颜色模式下&#xff08;包括&#xff1a;RGB、CMYK、Lab、灰度等&#xff09;的颜色值&#xff0c;因此可为色彩分析、颜色校正、色彩匹配等提供精确的数…...

Rust引用、借用和所有权详解

在Rust中&#xff0c;引用、借用和所有权是语言的核心概念&#xff0c;它们共同构成了内存管理的基石。本篇博客将介绍Rust中的这些概念&#xff0c;并通过具体的例子深入探讨它们的用法和优势。 所有权 Rust中的所有权是一种独特的内存管理机制&#xff0c;它规定了在特定作…...

C# 字体大小的相关问题

设置字体大小无法这么写&#xff0c; button1.Font.Size 20&#xff1b; 这个是只读属性&#xff1b; 把字体大小改为16&#xff0c; button2.Font new Font(button2.Font.Name, 16); 程序运行的时候先看一下窗体和控件的默认字体尺寸&#xff0c;都是9&#xff1b;然后点b…...

使用 Express.js 和 MySQL 构建 Web 应用程序

Express.js 是一个流行的 Node.js Web 框架&#xff0c;而 MySQL 是一种广泛使用的关系型数据库。本文将介绍如何结合使用 Express.js 和 MySQL 构建功能强大的 Web 应用程序。 一、安装和设置 首先&#xff0c;确保您已经安装了 Node.js 和 MySQL。然后&#xff0c;通过以下…...

1306. 跳跃游戏 III

经过测试&#xff0c;两种写法耗时差距10倍&#xff0c;我也不知道原因是啥 用访问次数的是更快的 class Solution { public:int n;bool dfs(vector<int>& arr, int start, vector<int>& visited){if(start<0||start>n || visited[start]1) return …...

List与数组相互转换

文章目录 将 List 转 数组List.toArra()Stream().toArray() 将 数组 转 ListLists.newArrayList()Stream.of() 将 List 转 数组 List.toArra() List<Integer> list Lists.newArrayList(1, 2, 3);// 无需转换类型 --> [1,2,3]Integer[] intArray list.toArray(new I…...

Linux openKylin(开放麒麟)系统SSH服务安装配置与公网远程连接

文章目录 前言1. 安装SSH服务2. 本地SSH连接测试3. openKylin安装Cpolar4. 配置 SSH公网地址5. 公网远程SSH连接6. 固定SSH公网地址7. SSH固定地址连接8. 结语 前言 openKylin是中国首个基于Linux 的桌面操作系统开发者平台&#xff0c;通过开放操作系统源代码的方式&#xff…...

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之AlphabetIndexer组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之AlphabetIndexer组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、AlphabetIndexer组件 可以与容器组件联动用于按逻辑结构快速定位容器显…...

java学习07---综合练习

飞机票 1.需求: 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。 按照如下规则计算机票价格&#xff1a;旺季&#xff08;5-10月&#xff09;头等舱9折&#xff0c;经济舱8.5折&#xff0c;淡季&#xff08;11月到来年4月&#xff09;头等舱7…...

【RL】Bellman Equation (贝尔曼等式)

Lecture2: Bellman Equation State value 考虑grid-world的单步过程&#xff1a; S t → A t R t 1 , S t 1 S_t \xrightarrow[]{A_t} R_{t 1}, S_{t 1} St​At​ ​Rt1​,St1​ t t t, t 1 t 1 t1&#xff1a;时间戳 S t S_t St​&#xff1a;时间 t t t时所处的sta…...

PyTorch 2.2大更新!集成FlashAttention-2,性能提升2倍

【新智元导读】新的一年&#xff0c;PyTorch也迎来了重大更新&#xff0c;PyTorch 2.2集成了FlashAttention-2和AOTInductor等新特性&#xff0c;计算性能翻倍。 新的一年&#xff0c;PyTorch也迎来了重大更新&#xff01; 继去年十月份的PyTorch大会发布了2.1版本之后&#…...

2.9日学习打卡----初学RabbitMQ(四)

2.9日学习打卡 一.RabbitMQ 死信队列 在MQ中&#xff0c;当消息成为死信&#xff08;Dead message&#xff09;后&#xff0c;消息中间件可以将其从当前队列发送到另一个队列中&#xff0c;这个队列就是死信队列。而在RabbitMQ中&#xff0c;由于有交换机的概念&#xff0c;实…...

大数据Flume--入门

文章目录 FlumeFlume 定义Flume 基础架构AgentSourceSinkChannelEvent Flume 安装部署安装地址安装部署 Flume 入门案例监控端口数据官方案例实时监控单个追加文件实时监控目录下多个新文件实时监控目录下的多个追加文件 Flume Flume 定义 Flume 是 Cloudera 提供的一个高可用…...

【SQL高频基础题】550.游戏玩法分析IⅣ

这个SQL花了很久。但是有挺多启发的。 如果我们做不出来&#xff0c;就去看答案。 但是看完答案之后&#xff0c;不要着急就去看下一道题&#xff0c;先把这道题吃透&#xff0c;后面的题目就会更有思路。 题目&#xff1a; Table: Activity ----------------------- | Co…...

sheng的学习笔记-部署-目录

标题传送门 sheng的学习笔记-docker部署&#xff0c;原理图&#xff0c;命令&#xff0c;用idea设置docker sheng的学习笔记-docker部署&#xff0c;原理图&#xff0c;命令&#xff0c;用idea设置docker sheng的学习笔记-docker部署springboot sheng的学习笔记-docker部署spri…...

【Java】悲观锁和乐观锁有什么区别?

Java中的悲观锁和乐观锁的主要区别体现在以下几个方面&#xff1a; 加锁策略&#xff1a;悲观锁在操作数据时&#xff0c;总是假设最坏的情况&#xff0c;即认为其他线程会修改数据&#xff0c;因此在读取或操作数据时&#xff0c;会先对数据进行加锁&#xff0c;以保证数据的…...