嵌入式软件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.rhkb.cn/news/365825.html

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

相关文章

Redis慢查询

Redis慢查询 目录 Redis慢查询慢查询配置慢日志操作返回参数介绍 Redis的慢查询就是当命令执行时间超过预定的阈值后将这条命令记录下来,与MySQL的功能类似 慢查询配置 默认阈值是10毫秒,即10000微秒 临时修改阈值为20毫秒 127.0.0.1:6379> confi…

docker配置redis主从复制

下载redis,复制redis.conf 主节点(6379) 修改redis.conf # bind 127.0.0.1 # 注释掉这里 protected-mode no # 改为no port 6379从节点(6380) 修改redis.conf bind 127.0.0.1 protected-mode no # 改为no port 6380 replicaof 172.17.0.2 6379 # 这里的ip为主节点容器的i…

Zuul介绍

Zuul 是 Netflix 开源的一个云平台网络层代理,它主要用于路由、负载均衡、中间件通信和动态路由。Zuul 本质上是一个基于 JVM 的网关,它提供了以下功能: 1.路由:Zuul 允许客户端和服务器之间的所有入站和出站请求通过一个中心化的…

深度挖掘数据资产,洞察业务先机:利用先进的数据分析技术,精准把握市场趋势,洞悉客户需求,为业务决策提供有力支持,实现持续增长与创新

在当今日益激烈的商业竞争环境中,企业想要实现持续增长与创新,必须深入挖掘和有效运用自身的数据资产。数据不仅是企业运营过程中的副产品,更是洞察市场趋势、理解客户需求、优化业务决策的重要资源。本文将探讨如何通过利用先进的数据分析技…

Python容器 之 字符串--下标和切片

1.下标(索引) 一次获取容器中的一个数据 1, 下标(索引), 是数据在容器(字符串, 列表, 元组)中的位置, 编号 2, 一般来说,使用的是正数下标, 从 0 开始 3, 作用: 可以通过下标来获取具体位置的数据. 4, 语法: 容器[下标] 5, Python 中是支持…

进程,线程,虚拟内存,交换技术

参考资料: 参考视频1https://www.bilibili.com/video/BV1Hs421M78w/?spm_id_from333.999.0.0&vd_source97411b9a8288d7869f5363f72b0d7613 参考视频2https://www.bilibili.com/video/BV1jE411W7e8/?spm_id_from333.337.search-card.all.click&vd_source…

独家首发 | Matlab实现SVM-Transformer多变量回归预测

独家首发 | Matlab实现SVM-Transformer多变量回归预测 目录 独家首发 | Matlab实现SVM-Transformer多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现SVM-Transformer多变量回归预测,SVM递归特征消除Transformer多输入单输出回归预测…

从项目中学习Bus-Off的快慢恢复

0 前言 说到Bus-Off,大家应该都不陌生,使用VH6501干扰仪进行测试的文章在网上数不胜数,但是一般大家都是教怎么去干扰,但是说如何去看快慢恢复以及对快慢恢复做出解释比较少,因此本文以实践的视角来讲解Bus-Off的快慢恢…

STM32人体心电采集系统

资料下载地址:STM32人体心电采集系统 1、项目功能介绍 此项目主要实现了以STM32为核心的人体心电采集系统软硬件的设计。软件设计过程是在STM32上移植的uCGUI做图形界面,并如实显示采集到的心电波形信号,有SD卡存储和USB数据传输功能。 2、实…

反激开关电源反馈电路相关参数选型

Vb的电压正常变化范围是:0-1V(最低0V,由于有稳压管,最高不会超过1V) Vb的电压越高,则输出占空比越大,Vb电压越低,则输出占空比越小 那么Va的正常变化范围应该是:1.4-4.…

阅读这篇文章,彻底了解响应式网页设计

随着移动设备的普及,访问网站的方式发生了翻天覆地的变化。人们不再仅仅依靠桌面机来获取信息和享受在线服务。这给网页设计带来了巨大的挑战。如何构建一个能够在各种设备上流畅运行并提供一致用户体验的网站,已经成为每个网页设计师关心的问题。此时&a…

超详细之IDEA上传项目到Gitee完整步骤

1. 注册gitee 账号密码,gitee官网地址:Gitee官网,注册完成后,登录。 2. 创建仓库,在主页左下角有新建按钮,点击新建后会进入到此页面填写仓库信息。 3. 创建完成后复制仓库地址 4. 打开IntelliJ IDEA新建或…

java基于ssm+jsp 房屋租赁系统

1 管理员登录 管理员输入个人的用户名、密码登录系统,这时候系统的数据库就会在进行查找相关的信息,如果我们输入的用户名、密码不正确,数据库就会提示出错误的信息提示,同时会提示管理员重新输入自己的用户名、密码,…

Chapter8 透明效果——Shader入门精要学习笔记

一、基本概念 在Unity中通常使用两种方法来实现透明效果 透明度测试(无法达到真正的半透明效果)透明度混合(关闭了深度写入) 透明度测试 基本原理:设置一个阈值,只要片元的透明度小于阈值,就…

go Channel原理 (三)

Channel 设计原理 不要通过共享内存的方式进行通信,而是应该通过通信的方式共享内存。 在主流编程语言中,多个线程传递数据的方式一般都是共享内存。 Go 可以使用共享内存加互斥锁进行通信,同时也提供了一种不同的并发模型,即通…

信息系统的安全模型

1. 信息系统的安全目标 信息系统的安全目标是控制和管理主体(含用户和进程)对客体(含数据和程序)的访问。作为信息系统安全目标,就是要实现: 保护信息系统的可用性; 保护网络系统服务的…

基于Java实现图像浏览器的设计与实现

图像浏览器的设计与实现 前言一、需求分析选题意义应用意义功能需求关键技术系统用例图设计JPG系统用例图图片查看系统用例图 二、概要设计JPG.javaPicture.java 三、详细设计类图JPG.java UML类图picture.java UML类图 界面设计JPG.javapicture.java 四、源代码JPG.javapictur…

jvm性能监控常用工具

在java的/bin目录下有许多java自带的工具。 我们常用的有 基础工具 jar:创建和管理jar文件 java:java运行工具,用于运行class文件或jar文件 javac:java的编译器 javadoc:java的API文档生成工具 性能监控和故障处理 jps jstat…

Spring Boot 实现 AOP 动态热插拔功能并附DEMO源码

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

【解锁未来:深入了解机器学习的核心技术与实际应用】

解锁未来:深入了解机器学习的核心技术与实际应用 💎1.引言💎1.1 什么是机器学习? 💎2 机器学习的分类💎3 常用的机器学习算法💎3.1 线性回归(Linear Regression)&#x1…