房地产公司网站建设ppt/成都关键词自然排名

房地产公司网站建设ppt,成都关键词自然排名,网站所有人查询,杭州广众建设工程有限公司网站文章目录 一、引言二、I2C总线协议的基本概念三、I2C通信机制3.1 硬件结构与基本原理3.2 信号的起始与终止3.3 数据传输格式及时序3.4 时钟同步与时钟伸展 四、设备寻址与数据传输4.1 I2C设备寻址方式4.2 地址冲突及解决方法4.3 数据传输过程中的确认机制4.4 I2C数据帧结构与传…

在这里插入图片描述

文章目录

    • 一、引言
    • 二、I2C总线协议的基本概念
    • 三、I2C通信机制
      • 3.1 硬件结构与基本原理
      • 3.2 信号的起始与终止
      • 3.3 数据传输格式及时序
      • 3.4 时钟同步与时钟伸展
    • 四、设备寻址与数据传输
      • 4.1 I2C设备寻址方式
      • 4.2 地址冲突及解决方法
      • 4.3 数据传输过程中的确认机制
      • 4.4 I2C数据帧结构与传输示例
    • 五、上位机实现I2C通信
      • 5.1 硬件接口选择与电路设计
      • 5.2 软件实现方案
        • 5.2.1 基于嵌入式系统的实现
        • 5.2.2 基于Linux系统的实现
      • 5.3 常见问题及调试技巧
      • 5.4 实例应用与扩展
    • 六、总结与展望

在这里插入图片描述

一、引言

I2C(Inter-Integrated Circuit)总线协议由飞利浦(Philips,现在的NXP)在上世纪80年代初提出,是一种低速、短距离、双线串行通信协议。由于其简单、低成本、易于实现和多主控支持的特点,I2C广泛应用于嵌入式系统、传感器接口、EEPROM、ADC、DAC、LCD显示器以及各种外围设备的通信中。本文将从I2C通信机制、设备寻址与数据传输、上位机实现I2C通信三个方面,深入探讨I2C总线协议的原理、实现方法和实际应用,并对其存在的问题和未来发展趋势进行展望。
在这里插入图片描述

二、I2C总线协议的基本概念

I2C总线采用两根信号线:数据线(SDA)和时钟线(SCL)。两者均为双向信号线,通过开漏(或开集电极)驱动,并需要外接上拉电阻来维持高电平状态。I2C总线基于主从架构设计,系统中可以有多个主设备和多个从设备,通过地址识别来实现多点通信。其核心特性包括:

  • 双线传输:只需要两根线即可实现数据和时钟的同步传输,简化了布线设计。
  • 多主控、多从机架构:允许多个主设备共享同一总线,具备仲裁机制保证数据传输的正确性。
  • 同步串行通信:时钟信号由主设备产生,从设备按此时钟采样数据,保证通信同步性。
  • 低成本、低功耗:由于仅需两根信号线和简单的电路结构,因此在系统设计中常用于连接低速外围设备。

三、I2C通信机制

3.1 硬件结构与基本原理

I2C总线的硬件结构非常简单,主要包括:

  • SCL(Serial Clock Line):由主设备提供时钟信号,决定数据传输速率。典型速率有标准模式(100 kHz)、快速模式(400 kHz)、高速模式(3.4 MHz)等。
  • SDA(Serial Data Line):用于传输数据和控制信息。数据在SCL的上升沿或下降沿采样,具体取决于协议要求。

由于采用开漏输出模式,每个设备都只能拉低信号线,必须依靠外部上拉电阻使信号线恢复高电平。这样设计的优点在于避免了多个设备同时驱动线路出现短路的情况,但也要求设计者在电路布局时合理选择上拉电阻值,既要满足速度要求,又要保证电流安全。

3.2 信号的起始与终止

在I2C通信过程中,信号传输的开始和结束由特殊的起始信号(Start Condition, S)和终止信号(Stop Condition, P)标志:

  • 起始信号(START):在总线处于空闲状态(SDA和SCL均为高电平)时,主设备将SDA拉低,而SCL保持高电平,从而告知总线上所有设备即将开始通信。
  • 重复起始信号(Repeated Start):在数据传输过程中,主设备可以发送重复起始信号,避免总线被释放,从而实现连续数据传输或切换读写方向。
  • 终止信号(STOP):在通信完成后,主设备将SDA从低电平拉高,而SCL保持高电平,表示本次数据传输结束,总线恢复空闲状态。

通过明确的起始与终止信号设计,可以有效区分一次完整的通信事务,同时为总线上多设备通信提供良好的状态管理。

3.3 数据传输格式及时序

I2C总线传输数据时,数据是以8位为一组进行传输的,每传输8位数据后,都伴随着一个确认位(ACK/NACK)的反馈过程。数据传输时序一般如下:

  1. 地址传输:主设备在起始信号后首先发送目标从设备的地址,地址长度可以为7位或10位,并在地址后附加一个读写位(R/W),用以指示数据传输方向。
  2. 应答信号:从设备在收到地址后,如果地址匹配,会在第九个时钟周期拉低SDA发送ACK(应答)信号,否则保持高电平发送NACK。
  3. 数据传输:主设备(或从设备,取决于读写方向)发送数据字节,每传输一个字节,接收方都会在第九个时钟周期发送ACK信号,以确认数据已被成功接收。
  4. 结束传输:数据传输结束后,主设备发送终止信号(STOP)结束本次事务。

整个传输过程中,数据传输与时钟信号的同步非常重要,所有设备必须严格遵循时钟同步规则,确保数据在正确的时刻被采样。下面给出典型的时序图示例:

   SCL:  ──┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─SDA:  ──┐ ┌───┐   ┌────┐  ┌────└─┴───┴───┴────┴──┴────START     DATA    ACK   STOP

在实际应用中,I2C总线还支持高速模式,此时时钟速率显著提高,但仍然需要保证信号完整性和时序同步性。

3.4 时钟同步与时钟伸展

I2C通信采用同步时钟方式,由主设备产生SCL信号,但在实际应用中,从设备可能因为内部处理延时等原因无法在规定时刻响应数据。为了解决这一问题,I2C协议引入了“时钟伸展(Clock Stretching)”机制:

  • 时钟伸展原理:当从设备需要更多时间来准备数据或完成内部处理时,它可以主动将SCL线拉低,使主设备等待,直到从设备释放SCL信号,允许主设备继续传输数据。
  • 时钟伸展的重要性:这一机制使得I2C总线具备更强的灵活性,能够适应不同速度和处理能力的设备混合使用。在设计时,主设备必须能够检测到时钟伸展现象,并适当地延长等待时间,确保数据传输的稳定性。

通过上述机制,I2C总线协议既能实现高速数据传输,又能兼顾低速设备的处理能力,充分体现了其在多种应用场景中的适应性和兼容性。

四、设备寻址与数据传输

4.1 I2C设备寻址方式

在I2C总线中,每个设备在上电时会分配一个唯一的地址,用于区分不同设备。I2C协议主要支持两种地址格式:

  • 7位地址模式:最常见的寻址方式,7位地址可以表示最多128个地址(实际上部分地址被保留),其地址格式通常为:[A6 A5 A4 A3 A2 A1 A0],在传输时在后面附加一个读写位,形成8位数据包。
  • 10位地址模式:在某些特定应用中,为满足设备数量需求,可以采用10位地址模式,格式较为复杂,需要两个字节来传输完整的地址信息。第一字节中包含特定标识符和部分地址信息,第二字节则传递剩余地址位。

在使用时,主设备需要先发送起始信号,然后发送从设备的地址字节。从设备在检测到自身地址后,进行ACK应答,随后进入数据传输状态。

4.2 地址冲突及解决方法

由于I2C总线上的设备地址由硬件或固件预设,如果多个设备使用相同地址,会造成总线冲突,导致数据传输错误。解决地址冲突的方法主要包括:

  • 硬件配置:部分I2C设备提供地址选择引脚(例如AD0、AD1等),通过连接不同的电平电平(高/低)可以选择不同的地址,从而避免冲突。
  • 软件配置:对于可编程的I2C设备,可以通过固件或者配置寄存器设置设备地址,避免与其他设备冲突。
  • 总线设计规范:在系统设计阶段,应仔细规划每个设备的地址分配,确保所有设备地址唯一,同时避免使用保留地址(如广播地址等)。

4.3 数据传输过程中的确认机制

I2C协议中采用确认(ACK)和非确认(NACK)机制确保数据传输的可靠性。具体步骤如下:

  1. 地址应答:在发送设备地址后,目标从设备若正确识别地址,会在第九个时钟周期拉低SDA以发送ACK信号。如果地址不匹配或设备未响应,则发送NACK信号。
  2. 数据应答:每传输完一个数据字节,接收方都需要在第九个时钟周期发送ACK信号,以表明数据已被正确接收。如果接收方无法接收更多数据或遇到错误,则发送NACK信号,主设备据此决定是否继续传输。
  3. 错误处理:在整个传输过程中,若发现NACK信号,则表明通信出现异常,主设备可通过重试、重新初始化通信或者发送终止信号来进行错误恢复。

这一应答机制大大提高了I2C通信的鲁棒性,使得数据传输过程中的误码率降低,并便于系统在复杂环境下进行自适应调整。

4.4 I2C数据帧结构与传输示例

一个完整的I2C数据帧通常包括以下部分:

  • 起始位:标志数据传输的开始。
  • 设备地址:7位或10位设备地址以及1位读写标识。
  • 应答位:从设备对地址或数据字节的确认信号。
  • 数据字节:实际传输的数据,每个字节包含8位有效数据。
  • 停止位:标志数据传输的结束。

以一个典型的写数据过程为例,其传输顺序可以描述为:

  1. 主设备发送起始信号(START)。
  2. 主设备发送目标设备的地址字节,后接写指令(R/W=0)。
  3. 从设备应答ACK。
  4. 主设备发送要写入的数据字节。
  5. 从设备应答ACK。
  6. 如果需要写入多个字节,重复步骤4和5。
  7. 主设备发送终止信号(STOP)。

这种帧结构设计不仅直观而且易于实现,同时为系统的调试和故障定位提供了有效手段。调试时,工程师可以利用逻辑分析仪监控SDA和SCL的信号波形,通过分析ACK/NACK状态确认通信流程是否正常。

五、上位机实现I2C通信

上位机(Host或Master)在I2C通信中起着核心作用,负责生成时钟信号、发起通信、发送设备地址及数据。上位机可以是单片机、嵌入式处理器、甚至PC机通过特定硬件接口实现I2C通信。下面介绍几种常见的实现方案和注意事项。

5.1 硬件接口选择与电路设计

上位机实现I2C通信首先需要具备I2C硬件接口,通常包括以下几种方式:

  • 专用I2C控制器:许多现代单片机或嵌入式处理器内置I2C模块,可以通过配置寄存器设置通信速率、时钟分频、数据位数等参数。
  • 软件模拟I2C(Bit-Banging):在缺乏硬件I2C模块的系统中,可以通过软件控制GPIO引脚模拟I2C时序,虽然速度较慢但具备较高的灵活性和兼容性。
  • USB-I2C转换器:在PC机等上位系统中,可以使用USB转I2C模块,通过专用驱动程序实现与I2C设备的通信。

在硬件电路设计时,必须注意以下关键点:

  • 上拉电阻选择:合理选择上拉电阻值,以满足总线的上升时间要求,同时避免因电流过大损坏设备。一般情况下,对于标准模式(100 kHz),上拉电阻常选在4.7kΩ到10kΩ之间;而在快速模式(400 kHz)下,则需选用较小的阻值。
  • 信号完整性:布线时应尽量缩短SCL和SDA的走线长度,避免过长的走线引入寄生电容或电感,同时注意电磁干扰问题。
  • 电压匹配:不同设备可能采用不同工作电压,必须保证上位机与从设备之间的电压兼容,必要时可使用电平转换器进行隔离。

5.2 软件实现方案

5.2.1 基于嵌入式系统的实现

在嵌入式系统中,I2C通常由硬件模块或软件模拟实现。下面以基于硬件I2C模块的实现为例说明基本步骤:

  1. 初始化I2C模块

    • 配置I2C时钟:设置时钟分频系数以满足所需传输速率。
    • 配置I2C工作模式:选择主模式,设置ACK使能、地址模式(7位或10位)等参数。
    • 初始化I2C总线引脚:配置对应的GPIO引脚为开漏输出模式,并接入上拉电阻。
  2. 发送起始信号与设备地址

    • 调用硬件寄存器启动起始信号,并发送目标设备地址及读写标志。
    • 等待从设备的ACK应答,若未收到ACK,则进行错误处理(如重试)。
  3. 数据传输

    • 根据写/读模式,分别执行数据发送或数据接收操作。对于写操作,依次将数据字节写入数据寄存器,并监测ACK状态;对于读操作,在每接收一个字节后发送ACK或NACK以指示是否继续接收。
    • 在完成数据传输后,发送停止信号结束本次事务。
  4. 错误处理与异常恢复

    • 在传输过程中,系统可能出现总线忙、应答超时等异常情况,必须在软件中设计超时检测和错误恢复机制,确保总线状态正常。
5.2.2 基于Linux系统的实现

在Linux平台上,I2C设备通常以文件的形式呈现给用户空间程序,通过I2C设备文件(如/dev/i2c-1)实现对总线的读写操作。实现步骤如下:

  1. 驱动支持与内核模块

    • 确认系统内核已启用I2C总线支持及相关设备驱动。常见的驱动模块如i2c_dev为用户空间提供接口。
    • 利用i2cdetect工具可以扫描系统中连接的I2C设备,验证设备地址。
  2. 用户空间应用程序

    • 通过open()函数打开I2C设备文件,随后使用ioctl()设置从设备地址(如I2C_SLAVE)。
    • 采用read()write()系统调用进行数据传输,也可以使用更高级的i2c_smbus_read_byte()i2c_smbus_write_byte()等API接口简化操作。
    • 处理通信异常和错误返回,确保数据传输的稳定性。
  3. 应用示例

下面给出一个基于Linux平台的简单示例代码(伪代码):

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/i2c-dev.h>#define I2C_DEVICE "/dev/i2c-1"
#define SLAVE_ADDR 0x50  // 从设备地址示例int main(void) {int file;unsigned char buffer[10];// 打开I2C设备文件if ((file = open(I2C_DEVICE, O_RDWR)) < 0) {perror("打开I2C设备失败");exit(1);}// 设置从设备地址if (ioctl(file, I2C_SLAVE, SLAVE_ADDR) < 0) {perror("设置从设备地址失败");close(file);exit(1);}// 写数据示例buffer[0] = 0x00; // 寄存器地址buffer[1] = 0xAB; // 要写入的数据if (write(file, buffer, 2) != 2) {perror("写数据失败");}// 读数据示例buffer[0] = 0x00; // 先发送要读的寄存器地址if (write(file, buffer, 1) != 1) {perror("写寄存器地址失败");}if (read(file, buffer, 1) != 1) {perror("读数据失败");} else {printf("读取的数据:0x%X\n", buffer[0]);}close(file);return 0;
}

以上示例展示了如何在Linux系统中通过I2C设备文件进行简单的数据读写操作。实际工程中,需要根据设备的数据手册和应用场景,设计更为复杂的错误检测、重试机制和数据处理逻辑。

5.3 常见问题及调试技巧

在上位机实现I2C通信过程中,常常会遇到以下问题及挑战:

  • 总线占用和仲裁冲突
    多主设备系统中可能出现总线争用问题,主设备需要检测仲裁丢失情况,重新发起通信。
  • 时序和延时问题
    软件模拟I2C时,由于操作系统调度或程序延时,可能导致时钟不稳定,影响数据传输。调试时可以利用示波器或逻辑分析仪监控SDA、SCL波形,检查上升/下降时间是否满足协议要求。
  • 电平不匹配和噪声干扰
    当上位机与从设备工作电压不同或者布线较长时,信号完整性容易受到影响。使用适当的电平转换器和滤波电路,以及在PCB设计中优化走线布局,可有效降低干扰风险。
  • 应答丢失或数据错误
    如果从设备未能及时响应ACK信号,可能是由于硬件故障、驱动配置错误或传输速率过高。建议在软件中增加超时重试机制,并通过硬件调试工具验证各个时序信号的准确性。

调试过程中,建议先采用单一设备进行通信验证,再逐步扩展到多设备系统。利用调试工具记录数据传输过程中的异常现象,有助于快速定位问题根源。

5.4 实例应用与扩展

I2C通信不仅适用于简单的数据读写,还可以扩展到更复杂的系统,如:

  • 传感器网络
    多个传感器通过I2C总线连接至上位机,实现环境数据采集与监控。设计时可以采用中断机制提升数据响应速度,同时在软件中对传感器数据进行滤波和校正。
  • 存储器扩展
    EEPROM和Flash存储器通常采用I2C接口,上位机通过定期读写实现数据备份、配置保存等功能。由于存储器有写入周期限制,设计时需考虑数据写入频率和总线负载。
  • 显示设备控制
    LCD、OLED显示器也常使用I2C接口,上位机可以通过发送控制指令和数据流,实现图像显示和信息更新。针对实时显示要求,需优化数据传输速率和同步机制。

通过对不同应用场景的探索,工程师可以利用I2C协议构建稳定、高效的多设备通信系统,同时根据具体需求定制软件驱动和硬件接口,实现系统的模块化和可扩展性。

六、总结与展望

本文详细介绍了I2C总线协议的通信机制、设备寻址与数据传输,以及上位机实现I2C通信的关键技术。主要内容可以归纳如下:

  1. I2C通信机制

    • 利用SDA和SCL两根总线实现数据和时钟同步传输,通过起始信号、重复起始信号和终止信号确保传输帧的完整性。
    • 数据传输过程中采用应答机制(ACK/NACK),大大提高了数据传输的鲁棒性和错误检测能力。
    • 时钟伸展机制允许从设备根据处理需求主动延长时钟周期,为多种速度设备混合通信提供了可能。
  2. 设备寻址与数据传输

    • 采用7位和10位两种地址模式,保证系统中每个设备具有唯一地址,避免总线冲突。
    • 数据传输过程中,每个字节后附加ACK/NACK信号,确保数据在传输过程中及时反馈、及时纠错。
    • 在设计过程中需注意地址冲突问题,通过硬件地址选择引脚和软件配置手段实现灵活管理。
  3. 上位机实现I2C通信

    • 上位机作为主设备,负责生成时钟、发起通信、管理数据传输,通过硬件I2C控制器或软件模拟实现通信功能。
    • 在嵌入式系统和Linux平台上,分别通过寄存器配置和设备文件接口完成I2C通信操作,同时应对总线占用、时序不稳定、噪声干扰等常见问题。
    • 实际应用中,I2C协议不仅限于简单数据传输,还可以用于传感器网络、存储器扩展和显示设备控制等多种场景。

未来,随着嵌入式系统和物联网设备的不断发展,I2C协议仍将发挥重要作用。不断提升的数据传输速率、优化的错误恢复机制以及与其他总线协议(如SPI、UART)的混合使用,将推动I2C在更高要求的应用场景中发挥作用。同时,随着多主控系统、智能设备和低功耗设计的普及,I2C协议的可靠性和灵活性也将进一步得到提升。

总体而言,I2C总线协议以其简洁、高效、灵活的特性成为嵌入式系统中不可或缺的通信手段。工程师在设计和调试过程中,应深入理解I2C的硬件原理和软件实现细节,结合实际应用场景不断优化系统性能,确保数据传输稳定、可靠。通过对I2C通信机制和设备寻址原理的全面了解,可以更好地应对复杂系统中多设备协同工作的问题,并为新型通信协议的发展提供宝贵经验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/73219.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Trae IDE:解锁 AI 驱动的高效编程体验

Trae 介绍 Trae 是字节跳动推出的一款面向开发者的 AI 驱动的集成开发环境&#xff08;IDE&#xff09;&#xff0c;于 2024 年 1 月 19 日在新加坡正式发布海外版&#xff0c;2025 年 3 月 3 日发布国内版。海外版由字节跳动旗下的 SPRING&#xff08;SG&#xff09;PTE.LTD.…

我的创作纪念日:730天的技术写作之旅

我的创作纪念日&#xff1a;730天的技术写作之旅 机缘 从一篇案例分析开始 2023年3月13日&#xff0c;我写下了第一篇技术博客《软考高级-系统分析师-案例分析-系统维护与设计模式》。那时的初心很简单&#xff1a; 沉淀实战经验——在备考软考系统分析师时&#xff0c;发现…

使用 Arduino 和 ESP8266 Wi-Fi 模块发送电子邮件

使用 Arduino Uno 和 ESP8266 Wi-Fi 模块发送电子邮件 我们正在迈向物联网 (IoT) 世界。这项技术在电子和嵌入式系统中起着非常重要的作用。从任何微控制器或嵌入式系统发送电子邮件都是非常基本的事情,这在 IoT 中是必需的。因此,在本文中,我们将学习“如何使用 Wi-Fi 和…

golang算法二叉树对称平衡右视图

100. 相同的树 给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1&#xff1a; 输入&#xff1a;p [1,2,3], q [1,2,3] 输出&#xff1a…

c++介绍智能指针 十二(1)

普通指针&#xff1a;指向内存区域的地址变量。使用普通指针容易出现一些程序错误。 如果一个指针所指向的内存区域是动态分配的&#xff0c;那么这个指针变量离开了所在的作用域&#xff0c;这块内存也不会自动销毁。动态内存不进行释放就会导致内存泄露。如果一个指针指向已…

C++编译问题——1模板函数的实现必须在头文件中

今天编译数据结构时&#xff0c;遇见一个编译错误 假设你有一个头文件 SeqList.h 和一个源文件 SeqList.cpp。 SeqList.h #ifndef SEQLIST_H #define SEQLIST_H#include <stdexcept> #include <iostream>template<typename T> class SeqList { private:sta…

安卓实现魔改版 CRC32 算法

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 关于 CRC32 算法介绍可以参考这篇文章&#xff1a;常用加解密算法介绍 标准 CRC32 算法 创建 crc32.cpp&#xff0c;使用 C 实现标准 CRC32 算法 #include …

python离线安装

Python Releases for Windows | Python.org 下载包地址widows一般是64bit的包 下载完成后双击&#xff0c;在弹出的首个页面会看到下面的图 第一步&#xff1a;建议手动安装 第二步&#xff1a;一定要勾选把版本加入到Path路径 然后就是无脑下一步&#xff0c;到这一步就可…

Web开发-PHP应用文件操作安全上传下载任意读取删除目录遍历文件包含

知识点&#xff1a; 1、安全开发-原生PHP-文件安全操作 2、安全开发-原生PHP-上传读取删除包含等 3、安全开发-原生PHP-代码审计文件安全 一、演示案例-WEB开发-文件安全-上传下载读取 文件上传 $_FILES&#xff1a;PHP中一个预定义的超全局变量&#xff0c;用于在上传文件时…

自然语言处理:文本聚类

介绍 大家好&#xff0c;博主又来和大家分享自然语言处理领域的知识了。今天给大家分享的内容是自然语言处理中的文本聚类。 文本聚类在自然语言处理领域占据着重要地位&#xff0c;它能将大量无序的文本按照内容的相似性自动划分成不同的类别&#xff0c;极大地提高了文本处…

基于javaweb的SpringBoot个人健康管理系统小程序微信小程序设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

Vue项目搜索引擎优化(SEO)终极指南:从原理到实战

文章目录 1. SEO基础与Vue项目的挑战1.1 为什么Vue项目需要特殊SEO处理&#xff1f;1.2 搜索引擎爬虫工作原理 2. 服务端渲染&#xff08;SSR&#xff09;解决方案2.1 Nuxt.js框架实战原理代码实现流程图 2.2 自定义SSR实现 3. 静态站点生成&#xff08;SSG&#xff09;技术3.1…

CentOS7安装DNS服务器bind

文章目录 安装DNS服务设置配置文件自定义域名解析完整配置 需求是公司内网服务器无法连接外网&#xff0c;需要在本地搭建DNS服务&#xff0c;这样物理机器迁移到内网后&#xff0c;通过域名解析访问服务 DNS服务器 172.25.14.215 ip域名172.25.14.216mysql.server172.25.14.2…

DFS刷题(25.3.13)

题目1——烤鸡 题目描述 题解 这是一个简单的暴搜题目&#xff0c;由于一共由10种配料&#xff0c;每种配料可以放1到3克&#xff0c;因此只需要用dfs对每种配料放入的质量进行暴力搜索即可&#xff0c;如果放入的配料质量之和等于题目给出的美味程度 n n n&#xff0c;记录一…

《Python实战进阶》第21集:数据存储:Redis 与 MongoDB 的使用场景

第21集&#xff1a;数据存储&#xff1a;Redis 与 MongoDB 的使用场景 摘要 在现代应用开发中&#xff0c;数据存储的选择直接影响系统的性能、扩展性和成本。Redis 和 MongoDB 是两种极具代表性的数据库技术&#xff0c;它们分别擅长解决不同场景下的问题。本文将深入探讨 Re…

三视图转stl导出 空心面片体 networkx shapely triangle numpy-stl

from shapely.geometry import Polygon import triangle from shapely.ops import unary_union from stl import mesh import numpy as np from collections import defaultdict from 三维投影线段寻找 import get_adjusted_clusters,get_clusters,get_intersect_lines import …

大摩闭门会:250312 学习总结报告

如果图片分辨率不足&#xff0c;可右键图片在新标签打开图片或者下载末尾源文件进行查看 本文只是针对视频做相应学术记录&#xff0c;进行学习讨论使用

【51单片机】程序实验15.DS18B20温度传感器

主要参考学习资料&#xff1a;B站【普中官方】51单片机手把手教学视频 开发资料下载链接&#xff1a;http://www.prechin.cn/gongsixinwen/208.html 单片机套装&#xff1a;普中STC51单片机开发板A4标准版套餐7 目录 DS18B20介绍主要特性内部结构控制时序初始化时序写时序读时序…

ESP32芯片模组方案,设备物联网无线通信,WiFi蓝牙交互控制应用

在当下&#xff0c;物联网正以前所未有的速度席卷全球&#xff0c;从繁华都市的智能建筑&#xff0c;到宁静乡村的智慧农业&#xff0c;从人们日常使用的可穿戴设备&#xff0c;到工业领域复杂精密的自动化生产线&#xff0c;物联网的触角已深入到生活与生产的每一个角落。 而…

Linux第二次练习

1.首先在根下面创建一个名为text的目录 2.在根目录下新建一个text目录&#xff0c;然后在text目录中新建上图的一级目录、二级目录以及三级目录 3.显示/text目录下文件的树形拓扑图 4.将linux树状结构图中列出的所有文件用ll命令列出来