嵌入式软件stm32面试

一、STM32的内核型号有哪些?

STM32系列是STMicroelectronics(意法半导体)生产的基于ARM Cortex-M内核的微控制器产品线。这些产品按照不同的内核架构和性能特点分为了主流产品、超低功耗产品和高性能产品。

1.1 主流产品

  • STM32F0 系列:搭载 ARM Cortex-M0 内核。
  • STM32F1 系列:搭载 ARM Cortex-M3 内核。
  • STM32F3 系列:搭载 ARM Cortex-M4 内核,带有FPU和DSP指令。

1.2 超低功耗产品

  • STM32L0 系列:搭载 ARM Cortex-M0+ 内核。
  • STM32L1 系列:搭载 ARM Cortex-M3 内核。
  • STM32L4 和 STM32L4+ 系列:搭载 ARM Cortex-M4 内核。

1.3 高性能产品

  • STM32F2 系列:搭载 ARM Cortex-M3 内核。
  • STM32F4 系列:搭载 ARM Cortex-M4 内核。
  • STM32F7 系列:搭载 ARM Cortex-M7 内核,提供更高的性能和更多的功能。
  • STM32H7 系列:搭载 ARM Cortex-M7 内核或双核架构(Cortex-M7与Cortex-M4)。

二、STM32主频是多少,传感器和单片机总线类型有哪些?

2.1 主频

STM32微控制器的主频由硬件和软件编程决定。通常,外部晶振的频率可以通过倍频器来提高到所需的主频水平。具体主频值视系列和型号而定。

2.2 传感器和单片机总线类型

STM32微控制器通常支持多种标准和协议,包括:

  • 单总线
  • I2C(IIC)
  • SPI
  • RS485
  • RS232

三、STM32F1和F4的区别?

特性STM32F1系列STM32F4系列
内核类型Cortex-M3Cortex-M4
主频最高72MHz最高168MHz
浮点运算无浮点运算单元(FPU)具有浮点运算单元(FPU)
功能性能外设功能相对较简单外设更丰富、功能更强大
内存大小内部SRAM最大64KB内部SRAM通常为192KB(112+64+16)

四、介绍STM32启动过程?

  1. 通过Boot引脚设置初始启动地址:STM32的Boot引脚用于选择启动模式,这些模式可以是系统内存、主闪存内存或嵌入式SRAM。
  2. 初始化栈指针(__initial_sp):微控制器首先初始化栈指针,栈指针的初始值通常位于启动时代码的起始部分。
  3. 指向复位处理程序(Reset_Handler):微控制器跳转到Reset_Handler,这是一个启动函数,完成基本的硬件设置工作。
  4. 设置异常和中断处理程序:如HardFault_Handler,处理硬件失败异常。
  5. 设置系统时钟(SystemInit):在Reset_Handler中,调用SystemInit函数,配置微控制器的系统时钟。
  6. 调用C库启动例程(_main 或 main):启动代码会调用C库的初始化代码,然后进入main函数,这是用户程序的入口点。

五、介绍一下GPIO?

STM32微控制器的GPIO(通用输入/输出)引脚可以配置为不同的工作模式,以便于它们可以用于不同的应用。下面是STM32 GPIO的8种基本工作模式的说明:

序号模式名称描述
1GPIO_Mode_AIN模拟输入,用于读取模拟信号,如传感器输出。
2GPIO_Mode_IN_FLOATING浮空输入,高阻抗状态,不连接上拉或下拉电阻。
3GPIO_Mode_IPD下拉输入,内部连接下拉电阻,无高电平信号时输出低电平。
4GPIO_Mode_IPU上拉输入,内部连接上拉电阻,无低电平信号时输出高电平。
5GPIO_Mode_Out_OD开漏输出,可输出低电平,高电平需要外部上拉。
6GPIO_Mode_Out_PP推挽输出,可以输出高电平和低电平。
7GPIO_Mode_AF_OD复用开漏输出,用于特定的外设复用功能,如I2C通讯。
8GPIO_Mode_AF_PP复用推挽输出,用于特定的外设复用功能,如USART、TIM等。

六、UART串行通信方式介绍?

6.1 同步通信

  1. I2C (Inter-Integrated Circuit) 半双工

    • I2C是一种串行通信总线,用于连接微控制器和外部设备。它使用两根线(串行数据线SDA和串行时钟线SCL)进行通信。
  2. SPI (Serial Peripheral Interface) 全双工

    • SPI是一种串行通信协议,用于连接微控制器和外部设备。它通常使用四根线(MOSI、MISO、SCK、SS)。

6.2 异步通信

  1. RS485 半双工

    • RS485是一种串行通信标准,通常用于长距离通信和多点通信。
  2. RS232 全双工

    • RS232是一种常见的串行通信标准,也被称为串口通信。

6.3 波特率

UART协议中的波特率(Baud Rate)是指数据传输的速率,即每秒钟传输的比特数(bit/s)。波特率115200表示每秒钟传输115200个比特。

七、串口如何配置?

7.1 串口时钟使能,GPIO时钟使能

首先需要使能串口和GPIO的时钟,确保它们可以正常工作。这可以通过配置相应的时钟控制寄存器来实现。

7.2 串口复位

在初始化之前,对串口进行复位操作,以确保其处于初始状态。

7.3 GPIO端口模式设置

配置用于串口通信的GPIO引脚的工作模式。通常,TX引脚设置为复用推挽输出模式,而RX引脚设置为浮空输入模式。

7.4 串口参数初始化

初始化串口的参数,包括波特率、数据位、停止位、奇偶校验位和数据流控制等。

7.5 开启中断并初始化NVIC

如果需要使用中断来处理串口接收或发送事件,则需要开启中断并初始化相应的中断向量控制器(NVIC)。

7.6 使能串口

启用串口,使其可以开始工作。这通常涉及设置相应的使能位或控制寄存器。

7.7 编写中断处理函数

如果使用了中断,需要编写相应的中断处理函数来处理串口接收或发送中断事件。

九、I2C总线在传送数据过程中共有三种类型信号?

9.1 开始信号

在I2C总线通信中,开始信号表示数据传输的开始。它由SCL(时钟线)为高电平时,SDA(数据线)由高电平向低电平跳变而产生。

9.2 结束信号

结束信号表示数据传输的结束。它由SCL为高电平时,SDA由低电平向高电平跳变而产生。

9.3 应答信号

在I2C通信中,接收器在接收到8位数据后,需要向发送器发送应答信号,表示已经成功接收数据。应答信号是一个特定的低电平脉冲。

十、I2C配置主机模式端口该怎么配置?

10.1 硬件模式

在硬件模式下,使用了复用开漏输出,这意味着输出引脚既不上拉也不下拉,而是由外部电路控制。这种模式适用于快速模式,即400 Kbit/s的数据传输速率。

10.2 软件模拟

在软件模拟模式下,使用了开漏输出。这意味着输出引脚在低电平时输出低电平,而在高电平时不输出电平,这需要外部上拉电阻。这种模式适用于标准模式,即100 Kbit/s的数据传输速率。

10.3 硬件配置步骤

  1. 启用GPIO时钟和I2C时钟。
  2. 配置GPIO引脚为复用开漏模式。
  3. 初始化I2C参数,包括通信速度、地址模式和数据传输方向等。
  4. 启用I2C外设。

十一、什么是I2C仲裁机制?

I2C总线的仲裁机制是指在多主机环境中,多个主机同时尝试占用总线进行通信时,仲裁机制用于决定哪个主机可以优先占用总线。具体实现方法如下:

  1. 检测总线状态:每个主机在发送数据时,都会实时监测SDA线的状态。
  2. 比较数据:如果一个主机发送了低电平,而另一个主机发送了高电平,发送高电平的主机就会认为总线被占用,从而退出仲裁。
  3. 胜者占总线:最终,发送低电平的主机继续占用总线。

十二、SPI需要几根线?

SPI通信需要以下四根线:

  1. MOSI (Master Out Slave In):主机输出,设备输入。
  2. MISO (Master In Slave Out):主机输入,设备输出。
  3. SCK (Serial Clock):串行时钟线,由主机提供。
  4. SS (Slave Select):从设备选择线,通常为低电平有效。

十三、SPI通信的四种模式?

SPI通信的四种模式取决于时钟极性(CPOL)和时钟相位(CPHA):

  1. 模式0:CPOL=0,CPHA=0。时钟空闲状态为低电平,数据在时钟上升沿采样。
  2. 模式1:CPOL=0,CPHA=1。时钟空闲状态为低电平,数据在时钟下降沿采样。
  3. 模式2:CPOL=1,CPHA=0。时钟空闲状态为高电平,数据在时钟下降沿采样。
  4. 模式3:CPOL=1,CPHA=1。时钟空闲状态为高电平,数据在时钟上升沿采样。

十四、该如何确定使用哪种模式?

确定SPI通信模式的方法如下:

  1. 查看设备手册:大多数SPI设备会在数据手册中指定所需的SPI模式。
  2. 实验验证:在不确定的情况下,可以通过实验来验证哪种模式可以成功通信。

十五、描述一下中断的处理流程?

  1. 中断发生:外部设备或内部事件触发中断请求。
  2. 中断响应:CPU响应中断请求,保存当前执行上下文(如程序计数器和状态寄存器)。
  3. 中断向量跳转:CPU跳转到中断向量表中对应的中断服务程序(ISR)。
  4. 执行ISR:执行中断服务程序,处理中断事件。
  5. 恢复执行:ISR执行完成后,恢复保存的上下文,返回中断前的执行点。

十六、STM32的中断控制器支持多少个外部中断?

STM32的嵌套向量中断控制器(NVIC)支持最多240个外部中断源,不同的STM32型号支持的中断数量可能会有所不同。

十七、STM32有几个时钟源?

STM32微控制器通常有以下几个时钟源:

  1. 内部高速时钟(HSI)
  2. 内部低速时钟(LSI)
  3. 外部高速时钟(HSE)
  4. 外部低速时钟(LSE)
  5. PLL(Phase-Locked Loop)时钟

十八、RTOS的任务是怎么写的?如何切出这个任务?

编写RTOS任务的步骤

  1. 定义任务函数:任务由函数实现,通常包括无限循环,在其中周期性地执行任务代码。
  2. 创建任务:使用RTOS的API函数创建任务。这通常包括指定任务函数、任务优先级、以及可能的任务堆栈大小。
  3. 任务调度:RTOS的调度器负责管理多个任务的执行时间和顺序。任务可以基于优先级或轮询调度来进行切换。
  4. 任务函数示例

    这里是一个简单的RTOS任务示例,使用FreeRTOS作为示例环境:

  5. #include "FreeRTOS.h"
    #include "task.h"// 任务函数
    void vTaskFunction(void *pvParameters) {for (;;) {// 任务实际执行的代码// 可以包括读取传感器数据、更新状态、发送消息等// 延时,让出CPUvTaskDelay(pdMS_TO_TICKS(1000));}
    }// 创建任务
    int main(void) {xTaskCreate(vTaskFunction,          // 任务函数"Example Task",         // 任务名称configMINIMAL_STACK_SIZE,  // 堆栈大小NULL,                   // 传递给任务的参数tskIDLE_PRIORITY + 1,   // 任务优先级NULL                    // 任务句柄);// 启动调度器vTaskStartScheduler();// 如果系统正常运行,不应该到达这里for (;;);
    }
    

    任务切换机制

    任务的切换(Context Switching)是RTOS中的核心功能之一。当一个任务处于等待状态(例如等待时间延迟或等待资源),调度器会停止当前任务的执行,并保存其上下文(包括CPU寄存器等状态),然后加载另一个就绪任务的上下文并执行该任务。这种机制确保系统能够高效地响应实时事件。

    切换触发情况:
  6. 时间片轮转:在固定时间片结束后切换到其他相同优先级的任务。
  7. 资源等待:当任务等待系统资源(如信号量、消息队列)时。
  8. 任务优先级:更高优先级的任务就绪时,会抢占当前低优先级任务的执行。

18.1 任务间切换

  • 任务间切换:UCOS使用任务调度器来管理多个任务,每个任务有自己的优先级。当系统空闲或者当前任务主动放弃CPU执行权时,任务调度器会根据任务的优先级决定下一个要执行的任务。高优先级任务会优先执行,低优先级任务只有在没有更高优先级任务要执行时才能获得CPU执行权。
  • 硬件中断:当硬件中断发生时,系统会保存当前任务相关的变量(通常是通过将这些变量入栈),然后执行中断服务程序。中断服务程序执行完成后,系统会将之前保存的任务相关变量出栈并返回到原来的任务执行点。
  • 任务间切换的触发:为了确保低优先级任务有机会执行,高优先级任务在一定条件下需要放弃CPU执行权,让任务调度器选择其他任务执行。这可以通过插入等待延时、阻塞等待事件等方式来实现。

uCOS的任务调度器会根据任务的优先级和任务间的协作情况来决定任务的执行顺序,从而保证系统的稳定性和实时性。

十九、uCOS-II中任务间的通信方式有哪几种?

在uC/OS-II中,使用信号量、邮箱和消息队列这些事件来实现任务间的通信是非常常见的。这些事件可以用于实现资源共享、任务同步和消息传递等功能。

19.1 信号量

  • 用途:控制共享资源的使用权,标志某事件的发生,使两个任务的行为同步。
  • 应用实例:互斥信号量。初始化为1,用于保护共享资源,确保只有一个任务可以访问该资源,从而避免冲突。

19.2 邮箱(消息邮箱)

  • 概念:邮箱用于在任务之间传递消息,类似于一个缓冲区,任务可以将消息放入邮箱中,其他任务则可以从邮箱中获取消息。
  • 应用场景:用于存储外部事件、串口接收程序中的接收缓冲区等场景。

19.3 消息队列

  • 概念:消息队列是多个邮箱的集合,任务和中断可以将消息放入队列中,任务可以按照先进先出的顺序获取消息。
  • 应用场景:用于存储多个任务产生的消息,确保消息按照先进先出的顺序被处理。

这些事件在uC/OS-II中扮演着重要的角色,帮助实现任务间的通信和协作,从而构建出复杂的实时系统。通过合理地使用这些事件,可以提高系统的可靠性和实时性。

二十、uCOS-II和Linux的差异

μC/OS-II和Linux都适用于嵌入式系统,但它们有各自的特点和适用场景。

21.1 μC/OS-II

  • 设计定位:专为嵌入式系统而设计,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。
  • 特点:最小内核可编译至2KB,适用于资源受限的嵌入式环境,可以在几乎所有知名的CPU上进行移植。
  • 优势:针对嵌入式系统的需求进行了优化,运行效率更高,占用资源更少。

21.2 Linux

  • 适用范围:广泛应用于服务器、嵌入式系统以及家用机等各种场景。
  • 特点:免费、安全、稳定,具有开放源代码的特性,可以灵活定制和修改。
  • 优势:在服务器领域有广泛的应用,如Red Hat Linux等发行版在服务器上使用广泛,具有强大的社区支持和丰富的生态系统。

μC/OS-II更适用于对执行效率和资源占用有严格要求的嵌入式系统,而Linux则更适用于需要广泛应用、灵活定制以及在服务器领域有较大市场份额的场景。

差异比较

特点μC/OS-IILinux
设计定位专为嵌入式系统设计广泛应用于服务器、嵌入式系统等
内核大小最小内核可编译至2KB内核较大,常规内核大小较大
运行效率执行效率高,占用空间小在资源充足的系统上通常具有良好的性能
实时性能实时性能优良实时性能取决于硬件和内核配置
可扩展性可扩展性强具有较好的可扩展性
适用场景资源受限的嵌入式系统服务器、嵌入式系统、家用机等
社区支持和生态系统社区支持较小,但有专门的嵌入式社区强大的社区支持和丰富的生态系统

二十一、uCOS-II和uCOS-III与FreeRTOS比较

21.1 uC/OS-II vs. FreeRTOS

  • 外延支持:uC/OS-II具有大量外延支持,如FS、USB、GUI、CAN等,而FreeRTOS只支持TCP/IP。
  • 商业应用费用:在商业上,FreeRTOS是免费应用的,而uC/OS-II在商业上的应用是需要付费的。
  • 任务间通讯:FreeRTOS只支持队列、信号量、互斥量,而uC/OS-II除此外还支持事件标志组、邮箱。
  • 任务管理数量:理论上讲,FreeRTOS可以管理超过64个任务,而uC/OS-II只能管理64个。

21.2 uC/OS-II vs. μC/OS-III

  • 优先级管理:μC/OS-III允许几个任务使用同一个优先级,并且在同一个优先级中支持时间片调度。
  • 动态配置内核资源:μC/OS-III允许在程序运行中动态配置实时操作系统内核资源,避免了编译过程中资源不够分配的问题。
  • 资源复用:μC/OS-III对资源复用做了改进,不再受限于最大任务数,而是受限于RAM的可用量。
  • 功能增加:μC/OS-III增加了许多功能,包括更多的任务管理、信号量、互斥型信号量、事件标志、消息队列、定时器等,这些功能在uC/OS-II中是没有的。

比较总结

特点uC/OS-IIFreeRTOSμC/OS-III
外延支持支持大量外延,如FS、USB、GUI、CAN等仅支持TCP/IP同样支持大量外延,如FS、USB、GUI、CAN等
商业应用费用商业上需付费商业上免费应用商业上需付费
任务间通讯支持队列、信号量、互斥量、事件标志组、邮箱仅支持队列、信号量、互斥量支持队列、信号量、互斥量、事件标志组、邮箱
任务管理数量最多管理64个任务理论上支持超过64个任务理论上支持超过64个任务
优先级管理任务优先级不能重复,不支持时间片调度支持任务共享同一优先级,支持时间片调度支持任务共享同一优先级,支持时间片调度
动态配置内核资源不支持不支持可在程序运行中动态配置内核资源
资源复用有限于最大任务数不受限于最大任务数不再受限于最大任务数
功能增加功能相对较少功能相对较少增加了许多功能

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

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

相关文章

利用sortablejs实现拖拽排序

import Sortable from "sortablejs";created() {//禁止火狐拖拽进行搜索document.body.ondrop function(event){event.preventDefault();event.stopPropagation();}}// 打开对话框的时候调用下openCustomDialog(){this.rowDrop()}// 行拖拽 rowDrop() {this.$nextTi…

Linux工具(包含sudo提权与vim快捷配置)

目录 什么是软件包 查看软件包 如何安装软件 1.官方yum源下载 2.扩展yum源下载 如何卸载软件 补充知识如何将普通用户加入白名单 补充知识rzsz vim编辑器 1.命令模式(进入默认为这个模式)用户所有的输入都会被当成命令 2.插入模式 3.底行模…

SpringCloud Maven多模块项目导包

目录 一、父项目配置 二、配置子项目 三、Maven执行 四、运行Jar包 一、父项目配置 所有父项目均需确保配置了 <packaging>pom</packaging> 因为Maven某人的打包方式是 <packaging>jar</packaging> 二、配置子项目 仅在有SpringBoot启动类的…

Qt Designer 中设置信号与槽,QT5的四种编辑模式

目录 QT5的四种编辑模式 Qt Designer 中设置信号与槽 Qt Designer 中设置信号与槽 QT5的四种编辑模式 在QT5中,特别是在使用Qt Designer进行界面设计时,存在多种编辑模式以满足不同的开发需求。以下是对QT5中四种主要编辑模式的详细解释: 控件编辑模式(Edit Widgets):…

速盾:cdn高防免备案

云计算和互联网技术的发展&#xff0c;带来了无数便利和机遇&#xff0c;但也带来了各种网络安全威胁。网站被黑、DDoS攻击、敏感信息泄露等问题&#xff0c;给企业和个人带来了巨大的损失和风险。因此&#xff0c;保护网络安全成为了当务之急。 CDN&#xff08;Content Deliv…

【PHP项目实战训练】——使用thinkphp框架对数据进行增删改查功能

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

Python网页爬虫爬取豆瓣Top250电影数据——Xpath数据解析

Python网页爬虫爬取豆瓣Top250电影数据——Xpath数据解析 将使用Python网页爬虫爬取豆瓣电影Top250的电影数据&#xff0c;网页解析方法使用xpath。 获取数据后会将数据保存到CSV文件中。一、分析网页&#xff0c;初步获取信息 1.1 查看原页面信息 首先打开豆瓣Top250电影页…

操作系统期末快速复习(概念)

文章目录 第一章&#xff1a;操作系统引论操作系统的目标是什么&#xff1f;分时系统是什么&#xff1f;实时系统是什么&#xff1f;分时系统和实时系统的比较操作系统的基本特征是什么&#xff1f;操作系统的主要功能&#xff1f;***重要第二章&#xff1a;进程管理程序的顺序…

【编译报错】syntax error near unexpected token `(‘

背景&#xff1a; 在android.bp中是这样写的 cflags: ["-DEXPORT__attribute__((visibility(\"default\")))","-D__ANDROID_VNDK__",],想转换成android.mk&#xff1a; LOCAL_CFLAGS : -DEXPORT__attribute__((visibility("default")…

ClassCastException(类转换异常)可能原因和解决方法总结

ClassCastException(类转换异常)可能原因和解决方法总结 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;ClassCastException是Java中常见的异常之一&#xff0c…

Ant design Vue 表格中显示不同的状态(多条件显示)

比如&#xff1a;后端一个字段有多种状态&#xff1a; 那么后端接口会返回&#xff1a;0 或者 1 或者 2 其中一个&#xff0c;前端需要展示的是对应的文字&#xff0c;像简单的只有两个状态的可以直接在列里面操作&#xff1a; {title: 状态,dataIndex: usable,customRender: …

Windows10任务栏卡顿解决方案

一、重新启动任务资源管理器 右键底部任务栏选择“任务管理器”&#xff1b;按快捷键“CtrlShiftEsc”&#xff1b;搜索框搜索“任务管理器”并单击“打开”&#xff1b;“WinX”打开开始菜单附属菜单&#xff0c;在列表中选择“任务管理器” &#xff1b;按下“ctrlaltdelete”…

网上考试系统设计文档

网上考试系统设计文档 1. 引言 1.1 目的 本设计文档旨在为“网上考试系统”的开发提供详细的指导方案。系统旨在提供一个全面的在线考试平台&#xff0c;支持在线考试、考试管理以及系统设置等功能&#xff0c;以满足教育机构和教师对考试流程的高效管理和优化需求。 1.2 范…

黄仁勋子女经历曝光:不卷名校,加入英伟达前开餐厅当厨子...

上周&#xff0c;黄仁勋脱下他那标志性的皮夹克&#xff0c;换上黑黄色的学位服&#xff0c;面对加州理工大学近600名毕业生发表演讲。 他提到&#xff0c;“忍受痛苦、应对挫折和看到机遇是我的超能力。” 面对美国媒体的采访&#xff0c;他多次回忆起自己充满逆境的童年&am…

【numpy】知识点和内容的详细解答-2024年6月21日

用户: ∗∗ 在 NumPy 中&#xff0c;ndarray 对象&#xff08;即多维数组&#xff09;要求数组中所有元素的类型必须相同&#xff08;因为所有元素的类型都必须相同&#xff0c;具有了一定的同一性&#xff0c;这就在最大程度上面优化了内存和计算效率&#xff09;&#xff0c;…

【SQL】drop、delete 与 truncate 的区别

在数据库管理中&#xff0c;DROP、DELETE 和 TRUNCATE 是用于删除数据或表的命令&#xff0c;但它们有不同的用途和效果。以下是它们的详细区别&#xff1a; 1. DROP DROP 语句用于删除整个数据库对象&#xff08;如表、视图、索引等&#xff09;。一旦对象被删除&#xff0c…

ipython一些使用方法

使用自动补全和Tab键&#xff1a; IPython 提供了强大的自动补全功能。当你开始键入一个变量名或函数名时&#xff0c;按下 Tab 键会显示可能的补全选项。如果有多个选项&#xff0c;再次按下 Tab 键会列出所有选项。使用历史命令&#xff1a; 你可以使用 %history 命令查看之前…

CVPR 2024 以物体为中心的多感知具身大语言模型

CVPR 2024发表了关于多感知以对象为中心的具身大型语言模型&#xff08;MultiPLY&#xff09;的研究论文&#xff0c;该模型在3D环境中进行编码和交互。 提出MultiPLY是一个多感知的具身大型语言模型&#xff08;LLM&#xff09;&#xff0c;能够将视觉、听觉、触觉和温度等多…

MySQL入门学习-连接查询.INNER JOIN

表的连接在数据库中扮演着至关重要的角色。当我们处理多个表之间的关联数据时&#xff0c;连接查询是必不可少的。 假设我们有两个表 A 和 B&#xff0c;它们有一个共同的字段。现在&#xff0c;我们想从 A 和 B 中选择出所有匹配的数据。这就是连接查询的作用。 以下是一个基本…

CSS样式与视觉效果讲解

文章目录 CSS样式与视觉效果讲解1. 样式与视觉效果1.1 颜色与背景&#xff08;Colors and Backgrounds&#xff09;1.1.1 颜色&#xff08;Color&#xff09;1.1.2 背景颜色&#xff08;Background Color&#xff09;1.1.3 背景图片&#xff08;Background Image&#xff09;1.…