嵌入式基础(三)基础外设

嵌入式基础(三)基础外设

1.什么是UART?与USART有什么区别⭐⭐⭐

(1)什么是UART

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。是一种异步全双工串行通信协议,它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上,它不是像SPI和I2C这样的通信协议,而是微控制器中独立的物理电路或独立的IC。UART工作原理是将数据的二进制位一位一位的进行传输。

硬件连接

硬件连接比较简单,仅需要3条线,注意连接时两个设备UART电平,如电平范围不一致请做电平转换后再连接,如下图所示:

  • TX:发送数据端,要接对面设备的RX。
  • RX:接收数据端,要接对面设备的TX。
  • GND:保证两设备共地,有统一的参考平面。

通信协议

UART作为异步串口通信协议的一种,工作原理是将数据的字节一位接一位地传输。协议如下:

空闲位:

UART协议规定,当总线处于空闲状态时信号线的状态为1即高电平。

起始位:

开始进行数据传输时发送方要先发出一个低电平0来表示传输字符的开始。因为空闲位一直是高电平所以开始第一次通讯时先发送一个明显区别于空闲状态的信号即为低电平。

数据位:

起始位之后就是要传输的数据,数据可以是5,6,7,8位,构成一个字符,一般都是8位。先发送最低位LSB,再发送最高位MSB(小端模式)。

奇偶校验位:

数据位传送完成后,要进行奇偶校验,校验位其实是调整个数,串口校验分几种方式

  • 无校验(No Parity)
  • 奇校验(Odd Parity):如果数据位中1的数目是偶数,则校验位为1才能满足1的个数为奇数,如果1的数目是奇数,校验位为0。
  • 偶校验(Even Parity):如果数据为中1的数目是偶数,则校验位为0才能满足1的个数为偶数,如果1的数目是奇数,校验位为1。
  • Mark Parity:校验位始终为1。
  • Space Parity:校验位始终为0。
停止位:

数据结束标志,可以是1位,1.5位,2位的高电平。

波特率:

异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的。数据传输速率使用波特率来表示,单位bps(bits per second)。常见的波特率9600bps,115200bps等等,其他标准的波特率是1200,2400,4800,19200,38400,57600。举个例子,如果串口波特率设置为9600bps,那么传输一个比特需要的时间是:1 / 9600 ≈ 104.2us。

二、UART和USART的区别

特点

UART

USART

通信方式

只支持异步通信

可支持异步和同步通信

全双工通信

可以进行全双工数据传输

可以进行全双工数据传输

功能

通常只包括发送和接收功能

包括发送、接收、同步和异步等多种功能

数据线

一般只有两个数据线

在同步通信模式下需要多个数据线和时钟线

适用场景

适用于简单的低速异步通信应用

适用于更复杂的通信需求,包括同步和异步通信等

2.什么是I2C, I2C时序图?`⭐⭐

一、I2C协议简介

I2C(Inter-Integrated Circuit)是一种串行通信总线协议,用于在集成电路(IC)之间进行通信。它由两根线组成:串行数据线(SDA)和串行时钟线(SCL)。I2C总线采用主从结构,可以支持多个设备在同一条总线上进行通信。

I2C通信的特点包括简单、灵活和可靠,适用于连接多个低速设备。每个设备都有一个唯一的地址,主设备通过发送地址将数据传输给从设备,从设备接收并响应这些数据。

二、I2C总线结构

I2C总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。

三、I2C时序图

开始条件:在时钟线保持高电平时,数据线从高电平转为低电平,即检测到一个下降沿,会形成一个开始条件;

停止条件:时钟保持高电平时,数据线从低电平转为高电平形成一个停止条件。

进行数据传输前也就是紧跟开始条件后,我们要传送地址字节,前7位是从设备地址(这也是为什么一个主机理论上最多能接127个从机,2^7-1),第八位是读/写标志位。每8bit传输完成,第九位是应答位。如果是主设备发送数据,就是从设备应答,如果是主设备读取数据,就是主设备应答。

3.请说明总线接口USRT、I2C、USB的异同点(串/并、速度、全/半双工、总线拓扑等)⭐⭐⭐⭐

下面是USRT、I2C和USB总线接口的异同点比较表:

特性

USRT

I2C

USB

类型

串行

串行

串行

速度

快 - 高达几GHz

中等 - 最高可达400kHz

可变 - 低速、全速、高速、超速

传输协议

可使用多种协议,如UART、SPI等

特定I2C协议

特定USB协议

通信线数

3根或更多

2根

4根至更多

拓扑

点对点或多点

主从结构

主从结构

协议复杂性

中等

简单

复杂

主/从设备

可能有多个主设备和从设备

一个主设备和多个从设备

一个主设备和多个从设备

半双工/全双工

全双工

半双工

全双工或半双工

应用

通常用于远距离通信,如RS-485

适用于短距离通信,如传感器与微控制器之间

广泛应用于外设连接、存储设备等

4.什么是SPI,SPI的特性?⭐⭐⭐

1、什么是SPI

SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,越来越多的芯片集成了这种通信协议,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

2、SPI模式

SPI分为主、从两种模式,一个SPI通讯系统需要包含一个(且只能是一个)主设备,一个或多个从设备。

提供时钟的为主设备(Master),接收时钟的设备为从设备(Slave),SPI接口的读写操作,都是由主设备发起。当存在多个从设备时,通过各自的片选信号进行管理。

SPI是全双工且SPI没有定义速度限制,一般的实现通常能达到甚至超过10 Mbps

3、SPI信号线

SPI接口一般使用四条信号线通信:

SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)

  • MISO: 主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。
  • MOSI: 主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。
  • SCLK:串行时钟信号,由主设备产生。
  • CS/SS:从设备片选信号,由主设备控制。它的功能是用来作为"片选引脚",也就是选择指定的从设备,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。
4、SPI设备选择

SPI是单主设备( single-master )通信协议,这意味着总线中的只有一支中心设备能发起通信。

  1. 当SPI主设备想读/写[从设备]时:
  2. 它首先拉低[从设备]对应的SS线(SS是低电平有效)
  3. 接着开始发送工作脉冲到时钟线上,在相应的脉冲时间上,[主设备]把信号发到MOSI实现"写",同时可对MISO采样而实现"读"

6、SPI通信的四种模式

SPI的四种模式,简单地讲就是设置SCLK时钟信号线的那种信号为有效信号

它们的区别是定义了在时钟脉冲的哪条边沿转换(toggles)输出信号,哪条边沿采样输入信号,还有时钟脉冲的稳定电平值(就是时钟信号无效时是高还是低)。每种模式由一对参数刻画,它们称为时钟极(clock polarity)CPOL与时钟期(clock phase)CPHA。

  • SPI通信有4种不同的操作模式,不同的从设备可能在出厂是就是配置为某种模式,这是不能改变的
  • 但我们的通信双方必须是工作在同一模式下
  • 所以我们可以对我们的主设备的SPI模式进行配置,通过CPOL(时钟极性)和CPHA(时钟相位)来控制我们主设备的通信模式

具体如下:

1. 时钟极性(CPOL)定义了时钟空闲状态电平:

  • CPOL=0,表示当SCLK=0时处于空闲态,所以有效状态就是SCLK处于高电平时**(高有效)**
  • CPOL=1,表示当SCLK=1时处于空闲态,所以有效状态就是SCLK处于低电平时**(低有效)**

2. 时钟相位(CPHA)定义数据的采集时间。

  1. CPHA=0,在时钟的第1个跳变沿(上升沿或下降沿)进行数据采样。在第2个边沿发送数据**(1采2发)**
  2. CPHA=1,在时钟的第2个跳变沿(上升沿或下降沿)进行数据采样。在第1个边沿发送数据**(1发2采)**

具体如下:

  1. Mode0:CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平;数据采样是在第1个边沿,也就是SCLK由低电平到高电平的跳变;所以数据采样是在上升沿,数据发送是在下降沿。
  2. Mode1:CPOL=0,CPHA=1:此时空闲态时,SCLK处于低电平;数据发送是在第1个边沿,也就是SCLK由低电平到高电平的跳变;所以数据采样是在下降沿,数据发送是在上升沿。
  3. Mode2:CPOL=1,CPHA=0:此时空闲态时,SCLK处于高电平;数据采样是在第1个边沿,也就是SCLK由高电平到低电平的跳变;所以数据采集是在下降沿,数据发送是在上升沿。
  4. Mode3:CPOL=1,CPHA=1:此时空闲态时,SCLK处于高电平;数据发送是在第1个边沿,也就是SCLK由高电平到低电平的跳变;所以数据采集是在上升沿,数据发送是在下降沿。

注:数据采样=准备数据

CPOL=0:高有效,0到1,即上升沿是第一个边沿

CPOL=1:低有效,1到0,即下降沿是第一个边沿

5.什么是GPIO?⭐⭐

GPIO 是 General Purpose Input/Output(通用输入/输出)的缩写,它是一种在计算机系统中用于与外部设备进行数字信号交互的通用接口。每个 GPIO 引脚可以被配置为输入或输出,并且可以通过编程来读取或写入数字信号。

6.如何使用TIM定时器实现定时中断和PWM输出?⭐⭐⭐⭐

  1. 初始化 TIM 定时器:使用适当的配置和预分频器设置来初始化 TIM 定时器。选择合适的计数模式,例如向上计数模式或向下计数模式,以及所需的计数器值。
  2. 配置定时中断:使能定时器中断功能,并设置适当的中断优先级。确保定时器溢出时会触发中断。
  3. 配置 PWM 输出通道:选择一个或多个输出通道来作为 PWM 输出。配置这些通道的工作模式为 PWM 模式,并设置相应的占空比(PWM 的高电平时间与周期时间的比例)。根据您的需求配置 PWM 周期和占空比的值。
  4. 启动定时器:调用启动定时器的函数,开始定时器的计数。
  5. 在定时中断服务函数中编写代码:在定时中断服务函数中编写处理程序,用于处理定时中断的逻辑。您可以在此函数中执行所需的操作,例如更新 PWM 的占空比、改变输出状态等

#include "stm32xxxx.h"  // 包含特定型号的 STM32 头文件

#include "stm32xxxx_hal.h"  // 包含 STM32 HAL 库头文件

TIM_HandleTypeDef htim2;  // 定义一个 TIM_HandleTypeDef 结构体变量用于配置 TIM2

void SystemClock_Config(void) {

  // 在这里配置系统时钟

}

void TIM2_Init(void) {

  TIM_MasterConfigTypeDef sMasterConfig;

  TIM_OC_InitTypeDef sConfigOC;

  TIM_HandleTypeDef htim;

  // 启用 TIM2 时钟

  __HAL_RCC_TIM2_CLK_ENABLE();

  // 配置 TIM2

  htim2.Instance = TIM2;

  htim2.Init.Prescaler = 0;

  htim2.Init.CounterMode = TIM_COUNTERMODE_UP;

  htim2.Init.Period = 1000;

  htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;

  // 初始化 TIM2

  HAL_TIM_PWM_Init(&htim2);

  // 设置 PWM 输出

  sConfigOC.OCMode = TIM_OCMODE_PWM1;

  sConfigOC.Pulse = 500;  // 设置占空比,取值范围为 0 - 1000(0%-100%)

  sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;

  sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;

  HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1);  // 配置 TIM2 的通道 1

  // 配置 TIM2 的定时中断

  HAL_TIM_Base_MspInit(&htim2);

  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;

  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;

  HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig);

  // 启动定时器

  HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);

  HAL_TIM_Base_Start_IT(&htim2);

}

void TIM2_IRQHandler(void) {

    // 处理定时中断的逻辑

    // ...

    

    HAL_TIM_IRQHandler(&htim2);

}

int main(void) {

  HAL_Init();

  SystemClock_Config();

  TIM2_Init();

  while (1) {

    // 主循环中的其他任务

  }

}

7.外部中断触发模式有哪些?请分别描述它们的特点和应用场景。⭐⭐⭐

触发模式

特点

应用场景

上升沿触发

信号从低电平到高电平时触发中断

检测按钮按下或传感器触发等高电平信号变化的场合

下降沿触发

信号从高电平到低电平时触发中断

检测按钮释放或传感器复位等低电平信号变化的场合

双边沿触发

信号的上升沿和下降沿均触发中断

需要同时检测上升沿和下降沿的场合,如通信协议的时钟信号

电平触发

信号维持相应电平期间持续触发中断

持续性信号的检测,如通信协议的数据线

8.比较I2C和SPI接口的异同点,分别适用于哪些应用场景?⭐⭐⭐

特点

I2C

SPI

数据线数量

2 根(一根用于数据传输,一根用于时钟)

多根(最少 4 根,通常包括数据线、时钟线、片选线等)

传输速率

低速,最高速率通常在几百 kHz

高速,速率可以达到几 Mbps 或更高

设备连接方式

总线拓扑结构

点对点连接或主从模式

主从设备数量

高,支持多个主设备和从设备同时连接

通常只有一个主设备操作多个从设备

硬件复杂性

相对较低,只需要实现 I2C 控制器和设备

相对较高,需要实现 SPI 控制器和设备

适用场景

- 传感器、EEPROM、温度传感器等小规模设备

- 系统中设备数量多、通信速率要求不高的场景

- 存储器、FPGA、音频编解码器等需要高速数据传输的设备

- 系统中设备数量少、通信速率要求较高的场景

9.在STM32中如何配置和使用ADC模块?⭐⭐⭐

#include "stm32f4xx.h"

void ADC_Configuration(void) {

    GPIO_InitTypeDef       GPIO_InitStructure;

    ADC_InitTypeDef        ADC_InitStructure;

    // 使能 GPIO 时钟

    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);

    // 使能 ADC1 时钟

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);

    // 配置 ADC 输入引脚为模拟模式

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;      // 假设使用PA0作为ADC输入引脚

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;   // 模拟输入模式

    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; // 不使用上下拉电阻

    GPIO_Init(GPIOA, &GPIO_InitStructure);

    // ADC 配置

    ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;     // ADC 分辨率为 12 位

    ADC_InitStructure.ADC_ScanConvMode = DISABLE;               // 非扫描模式

    ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;         // 非连续转换模式

    ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None; // 不使用外部触发

    ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;      // 右对齐输出

    ADC_InitStructure.ADC_NbrOfConversion = 1;                  // 转换的通道数为1

    ADC_Init(ADC1, &ADC_InitStructure);

    ADC_Cmd(ADC1, ENABLE);    // 启用 ADC1

    // 配置ADC转换通道

    ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_3Cycles);

    // 启动ADC校准

    ADC_GetCalibrationFactor(ADC1);

    while(ADC_GetCalibrationStatus(ADC1));

    // 启动ADC转换

    ADC_SoftwareStartConv(ADC1);

}

10.同步通信和异步通信⭐⭐⭐⭐

同步通信:在同步通信中,发送方和接收方的时钟是相互关联的,数据的传输和接收是基于一个共同的时钟信号进行同步的。发送方在每个时钟周期内按照时钟的节拍发送数据,接收方也按照同样的时钟节拍接收数据。双方通过时钟信号的同步来保证正确的数据传输。同步通信对时序要求较高,需要在通信双方之间建立稳定的时钟信号。

异步通信:在异步通信中,发送方和接收方没有共同的时钟信号进行同步。数据的传输和接收不依赖于特定的时钟信号,而是通过特定的起始位和停止位来标识数据的传输开始和结束。每个数据帧都有自己的起始和停止位,这样接收方可以通过检测起始和停止位来识别每个数据帧。异步通信相对较为灵活,但需要额外的控制位来标识起始和停止。

区别:

  • 时钟同步:同步通信使用共同的时钟信号进行同步,异步通信没有共同的时钟信号。
  • 数据帧结构:同步通信将数据划分为固定的时间片或时钟周期,而异步通信在数据之间插入起始和停止位来界定数据帧的开始和结束。
  • 时序要求:同步通信对时序要求较高,通信双方需要保持严格的同步;而异步通信对时序要求较低,通信双方无需精确同步。
  • 灵活性:同步通信相对刚性,因为通信双方必须始终保持同步;异步通信相对灵活,因为通信不依赖于特定的时钟信号。

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

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

相关文章

人力资源管理方向论文怎么写?

目录 一、人力资源管理方向论文选题 二、人力资源管理方向论文参考资料 随着经济的蓬勃发展,企业日益意识到引才、善用人才、留住人才对于业务发展的至关重要性。人力资源管理逐渐成为企业管理中的核心职能,其角色日益凸显。近年来,“人力资…

机器学习 从入门到精通 day_05

1. 线性回归 前面介绍了很多分类算法,分类的目标变量是标称型数据,回归是对连续型的数据做出预测。 标称型数据(Nominal Data)是统计学和数据分析中的一种数据类型,它用于分类或标记不同的类别或组别,数据点之间并没有…

神经子图同构计数

摘要 本文研究了一个新的图学习问题:学习计算子图同构。与其他传统的图学习问题,如节点分类和链接预测不同,子图同构计数是NP完全的,需要更多的全局推理来监督整个图。为了使其可扩展为大规模的图形和模式,我们提出了一…

开源模型应用落地-模型上下文协议(MCP)-第三方MCP Server实战指南(五)

一、前言 在AI技术高速发展的2025年,如何让大语言模型(LLM)更灵活地调用外部工具与数据,成为开发者关注的焦点。​模型上下文协议(MCP)​作为AI与外部资源的“万能接口”,通过标准化交互框架解决了传统集成中的碎片化问题。而第三方MCP Server的引入,进一步降低了开发门…

【2025年认证杯数学中国数学建模网络挑战赛】C题 数据预处理与问题一二求解

目录 【2025年认证杯数学建模挑战赛】C题数据预处理与问题一求解三、数据预处理及分析3.1 数据可视化3.2 滑动窗口相关系数统计与动态置信区间耦合分析模型3.3 耦合关系分析结果 四、问题一代码数据预处理问题一 【2025年认证杯数学建模挑战赛】C题 数据预处理与问题一求解 三…

AI Agent开发大全第二十八课-MCP实现本地命令调用怎么做的?

开篇 MCP很强大,Client端一旦实现了稳定的连接和执行流程后任Server端随意改动都可兼容,这就是热插拨功能。 如果我们仅仅满足于MCP查点网上资料、读点图片即文字型的功能肯定是不能充分发挥MCP的强大之处的,正应了Google以及Anthropic最近的研究报告上说的:不要再在chat…

AJAX原理与XMLHttpRequest

目录 一、XMLHttpRequest使用步骤 基本语法 步骤 1:创建 XHR 对象 步骤 2:调用 open() 方法 步骤 3:监听 loadend 事件 步骤 4:调用 send() 方法 二、完整示例 1. GET 请求(带查询参数) 2. POST 请…

python写个0~12个月宝宝喂养规划表

下载字体:https://github.com/adobe-fonts/source-han-sans/releases 下载fpdf2 pip uninstall fpdf pip install fpdf2运行代码 ​from fpdf import FPDF from fpdf.enums import XPos, YPos# 创建 PDF 类 class BabyFeedingPDF(FPDF):def header(self):self.s…

集中趋势描述

一、集中趋势的定义与核心目标 集中趋势指数据向其中心值聚集的倾向,反映数据的典型水平或分布中心。其核心是通过统计指标(如众数、中位数、均值)概括数据的核心特征,帮助快速理解数据分布的核心位置。 核心作用:简化复杂数据、指导业务决策(如确定用户平均消费水平)、…

【NLP】Attention机制

1.模型对比 RNN(马尔科夫链式编码) 通过递归计算逐个处理 token,当前编码结果 h t h_t ht​仅依赖前一步的隐藏状态 h t − 1 h_{t-1} ht−1​和当前输入 x t x_t xt​局限性:序列建模需严格串行,无法并行;长距离依赖易丢失(梯度消失/爆炸)例:双向 LSTM 需正向+反向两…

基于OpenCV与PyTorch的智能相册分类器全栈实现教程

引言:为什么需要智能相册分类器? 在数字影像爆炸的时代,每个人的相册都存储着数千张未整理的照片。手动分类不仅耗时,还容易遗漏重要瞬间。本文将手把手教你构建一个基于深度学习的智能相册分类系统,实现:…

活动安排问题 之 前缀和与差分

文章目录 D. Robert Hood and Mrs Hood 考虑到一个活动开始时间和结束时间s,e,那么可以影响到的范围就是 s-d1,e,所以我们只需对这个每一个活动可以影响到的区域进行标记即可,当然为了降低时间复杂度,我们将使用前缀和与差分 t int(input()…

C++之 多继承

在学校里有老师和学生,他们都是人,我么应该创建一个名为 Person 的基类和两个名为 Teacher 和Student 的子类,后两者是从前者继承来的 有一部分学生还教课挣钱(助教),也就是同时存在着两个”是一个”关系&…

大数据学习栈记——Redis安装及其使用

本文介绍NoSQL技术:Redis的安装及其使用。操作系统:Ubuntu24.04 Redis介绍 Redis是一个键值(key-value)存储系统,即键值对非关系型数据库,和Memcached类似,目前正在被越来越多的互联网公司采用…

2024团体程序设计天梯赛L3-1 夺宝大赛

L3-037 夺宝大赛 分数 30 作者 陈越 单位 浙江大学 夺宝大赛的地图是一个由 nm 个方格子组成的长方形,主办方在地图上标明了所有障碍、以及大本营宝藏的位置。参赛的队伍一开始被随机投放在地图的各个方格里,同时开始向大本营进发。所有参赛队从一个方格…

JMeter的高并发和高频率和分布式

性能测试 模拟各种正常的、峰值的测试环境,检测程序的各项性能指标是否能够达标 高并发 JMeter中内置了定时器,可以实现时间模式相关的性能测试 需求1:同一时刻100个同学去访问学生管理系统的查询所有学院信息功能,统计高并发情况下平均响…

ubuntu学习day2

linux常用命令 3.文件查看及处理命令 3.1查看文件内容 cat[选项][文件] -b 对非空输出行编号 -E 在每行结束处显示$ -n 对输出的所有行编号 -s 不输出多行空行 标准输入、标准输出和标准错误 在 Linux 中,每个进程默认有三个文件描述符: 标准输入&…

项目中引入 Redis 及 常用五种数据类型

在平常的开发过程中,我们经常会用到缓存的技术。比如,验证码60秒后过期、计数器的实现、商品信息存储在缓存中快速展示等。那么,项目中经常会使用到的便是 redis 缓存。redis 在内存中操作,读写快。Redis 常用的数据类型有五种&am…

Spark-SQL简介及核心编程

Spark-SQL概述:是Spark用于结构化数据处理的模块,前身是Shark。Shark基于Hive开发,使SQL-on-Hadoop性能大幅提升,但对Hive依赖制约了Spark发展。SparkSQL汲取Shark优点并重新开发,在数据兼容、性能优化和组件扩展上优势…

奇趣点播系统测试报告

1.项目简介 本项目旨在搭建一个视频共享点播系统,服务器支持用户通过前端浏览器访问服务器,获取展示与观看和操作的界面,最终实现视频的上传以及观看和删改查等基础管理功能。让用户拥有良好的观看体验和分享视频的快捷方式,此外…