STM32——CAN协议

文章目录

  • 一.CAN协议的基本特点
    • 1.1 特点
    • 1.2 电平标准
    • 1.3 基本的五个帧
    • 1.4 数据帧
  • 二.数据帧解析
    • 2.1 帧起始和仲裁段
    • 2.2 控制段
    • 2.3 数据段和CRC段
    • 2.4 ACK段和帧结束
  • 三.总线仲裁
  • 四.位时序
  • 五.STM32CAN控制器原理与配置
    • 5.1 STM32CAN控制器介绍
    • 5.2 CAN的模式
    • 5.3 CAN框图
  • 六 手册寄存器部分讲解
    • 6.1 DBF冻结功能和TTC时间戳
    • 6.2 ABOM自动离线管理和AWUM自动唤醒
    • 6.3 NART自动重传,RFLM锁定模式和TXFP报文发送优先级的判断方法
    • 6.4 波特率设置
    • 6.5 发送邮箱
    • 6.6 接收FIFO
    • 6.7 验收筛选器
  • 七.CAN的结构体设置讲解
    • 7.1 结构体总结
    • 7.2 初始化结构体
    • 7.3 发送结构体
    • 7.4 接收结构体
    • 7.5 筛选器结构体
  • 八.CAN的原理图和接线

一.CAN协议的基本特点

1.1 特点

在这里插入图片描述

1.2 电平标准

总结就是显性电平是0,隐性电平是1,很多单元设备挂在主设备上时,主单元是相当于总线,其他单元只要有一个输出0,总线就显示0,只要其他单元全部输出1,总线就是1

在这里插入图片描述

1.3 基本的五个帧

这里最重要的是数据帧,也是最复杂的
在这里插入图片描述

1.4 数据帧

串口的一帧率是10-11位,起始位,数据位8位(一字节),(校验位),停止位,而CAN的一帧是七个段组成的,如下图所示,帧起始就是跟串口起始位一样,仲裁段是表示优先级,也就是ID,控制段如下图,一帧数据段最多发送8字节(64位),CRC段就是检查上面的所有段有没有错误,ACK表示收到了正确的段,帧结束就是相当于串口的停止位。

在这里插入图片描述

二.数据帧解析

2.1 帧起始和仲裁段

帧起始是一位显性电平0,然后到11位的仲裁段(看蓝色区域,高低电平看ID号,高位在前,低位在后,这里ID11位的话,高7位是不能都是隐形电平1),然后仲裁段后面跟了一个RTR远程请求位0或者1和一个IDE标识符选择请求位0(这里没有显示出来,因为在控制段里面了),RTR如果是0就是数据帧,数据帧的意思就是后面的数据段是有数据的,如果是1,表示这是一个远程帧,远程帧的意思就是后面的数据段是不存在的,DLC控制段也是0的,远程帧用于请求其他节点发送数据帧。上面说的仲裁位都是标准格式,如果需要扩展,在仲裁位的基础下,把原来的RTR替换成SRR替代远程请求位1,IDE变成扩展标识符1。
在这里插入图片描述

2.2 控制段

标准格式下,IDE就是上面说的,在控制段里面为0,然后就是R0,发送的话必须是0,接受的话可以是1,再加上控制段DLC(0—8位),扩展格式下,先r1和r0两个保留位,也是发送必须是0,接受可以是1,再加上DLC控制端(0—8位)。
在这里插入图片描述

2.3 数据段和CRC段

(1).数据段的标准格式和扩展格式是一样的都是0-64位,然后数据段是从最高位(MSB),开始输出的,跟串口不一样,串口是低位(LSB)先输出,而CAN是高位先输出的。

(2).CRC段也是标准格式和扩展格式一致都是15位加上一位CRC界定符(用于分隔的位),CRC计算方法就是帧起始+仲裁段+控制端+数据段,最后校验得到这个。

在这里插入图片描述

2.4 ACK段和帧结束

(1).ACK段的标准格式和扩展格式是一致的,ACK段分为ACK槽和ACK界定,发送单元发给接受单元的数据没有错后(CRC检测没有错误以后),发送单元会接受到接受单元发送的发送单元ACK段11,发送单元接受到了接受单元发的ACK后,会有一个响应,就是接受单元ACK段0。

(2).帧结束的标准格式和扩展格式是一样的,由于7个位的1组成。
在这里插入图片描述

三.总线仲裁

(1).必须同时两个或者两个以上的单元发送数据给主单元,才能进行仲裁(优先级),在总线空闲时,最先发送的单元获得发送权,或者同时发送时,则连续输出0(ID)多的单元,则优先发送,如果ID一样,则比较RTR和SRR等位。

(2).例如下图,单元1和单元2同时发送,单元1在红色位置时发送1,而单元2还是发送0,所以,单元1从下一位开始就进入接受状态,单元2优先发送。
在这里插入图片描述

四.位时序

(1).位时序就是设置波特率(传输速度),位速率就是一个发送单元发送每秒的位数叫做位速率(传输速度),位速率又分成四个段(如下图一),CAN协议把每个数据位(数据位就是例如串口里面那个起始位,数据位什么的)都分解成了四段,每个段又由若干个Tq的最小时间单位构成,然后我们想设置波特率的话,就要知道位时间(传输每位的时间),想设置位时间的话,就要知道波特率,位时间=1/波特率。

(2).四个段如图二进行解析。

(3).同步段就是有多个连接在总线上的单元通过此段进行时序调整来同时发送和接受数据,时序都是1到0的一个下降沿,或者0到1的一个上升沿,如图三,这些跳变作为时间基准,用于进行时钟同步和数据位的采样,为1Tq。

(4).传播时间段就是总线上的信号传播延迟,接收单元的输入延迟和发送单元的输出延迟,这个传播时间段的时间为总线上的信号传播延迟,接收单元的输入延迟和发送单元的输出延迟的时间的和的2倍,通常是1—8Tq。

(5).相位缓冲段1的作用是当信号边沿不能被包含于同步段中时,可以用它来进行补偿,通常为1-8Tq。

(6).相位缓冲段2的作用就是各个单元以独立时钟工作时,细微的时钟累计起来就会造成误差,它的作用就可以吸收这个误差。可以通过相位缓冲段加减SJW(SJW名为再同步补偿宽度,用于时钟频率偏差,传送延迟等各个单元有同步误差,SJW可以补充此误差的最大值,SJW不属于这四个段的,为1—4Tq)来吸收误差,SJW加大以后允许误差加大,但是通信速度降低,相位缓冲段2通常为2—8Tq。

(7).在STM32上面传播时间段和相位缓冲段1是加在一起的BS1,然后相位缓冲段2是BS2,就只有这两个时间。

(8).图四是位时序的构成,是假设以1位=10Tq的构成,这个采样时间的加大或者减少的最大值就是SJW,也就是SJW可以调节采样点。

(9).我们只需要设置传播时间段,相位缓冲段1,相位缓冲段2和SJW的值,剩下的都是硬件自动去完成。

图一

在这里插入图片描述
在这里插入图片描述

图二
在这里插入图片描述

图三
在这里插入图片描述
图四
在这里插入图片描述

五.STM32CAN控制器原理与配置

5.1 STM32CAN控制器介绍

对于STM32F407过滤器组有28个,STM32F103就有14个。
在这里插入图片描述

5.2 CAN的模式

(1).CAN的模式分为工作模式,测试模式和调试模式,工作模式又分为三个模式,如图一,一开始就需要初始化模式,初始化后,设置正常模式(CAN控制器既可以向总线发也可以接收总线的数据),就可以开始工作了,睡眠模式主要用来降低功耗用的。

(2).测试模式的静默模式是指在STM32的CAN控制器中,静默模式通常是指CAN控制器只接收数据而不发送数据。在静默模式下,CAN控制器仍然能够接收总线上的数据帧,但它不主动发送数据,如图二,发送端一直都处于1的状态。

(3).在图三中,测试模式的环回模式可以往总线上面发送数据,但是总线发送数据过来不能接收,也就是他只能发送数据不能接收,然后怎么知道发送成功了呢,它内部有形成环路,可以检测把发送的数据,最后在接收端看有没有发送成功。

(4).最后在图四中,是环回静默模式,总线上不能发数据给它,它也不能接收总线上的数据,只能自己给自己发送,用来测试,用的很少。

图一
在这里插入图片描述

图二
在这里插入图片描述
图三
在这里插入图片描述
图四
在这里插入图片描述

5.3 CAN框图

(1).下图一中,在STM32F103里面只有互联型产品才有两个CAN,一个是主CAN,另一个是从CAN,其他的只要有一个主CAN,但是在STM32F407里面就有主从CAN。

(2).在图二中,主从CAN都有自己的内核(红色圈),也有各自的主从发送邮箱(蓝圈)和各自的主从接收FIFO(黄圈),都是相互独立的,互不影响,筛选器又称过滤器,STM32F407和STM32F103互联型的才有28个,两个主从CAN是共用一个过滤器的(绿圈),每个CAN的发送邮箱一共是有3个,发送报文的优先级可以使用软件进行控制,还可以记录发送时间,然后每个CAN拥有两个3级深度的接收FIFO,可以使用过滤功能只接收或者不接受某些ID号的报文,可以配置成自动重发,不支持使用DMA进行数据收发。

(3).在图中右下角写了一句话,CAN的开始滤波器编号n是通过写入CAN FMR寄存器的CAN2SB[5:0]配置,这个n是指,比如n是2,那你滤波器就从编号为2到27的硬件过滤器来匹配和过滤CAN消息,过滤器的使用范围并不包括编号为0和1的过滤器。

(4).CAN的内核就是设置那些工作模式什么什么等等,然后我们把需要发的报文发到发送邮箱存着,等到总线空闲就开始发送,有多个单元的话,就根据优先级进行发送,然后就是我们的接受FIFO,总线发送给接受FIFO的数据要结果筛选器(滤波器)才能存到接受FIFO里面,如果总线有很多很多数据要发送,我们节点只要接受某一类的信息数据,这个筛选器就可以筛选掉,就不需要全部收到接受FIFO里面在进行软件筛选。

(5).然后最重要的一点就是如果你只使用从CAN控制器,那也要使能主控制器的时钟,因为是由主CAN控制的。

图一
在这里插入图片描述
图二
在这里插入图片描述

六 手册寄存器部分讲解

6.1 DBF冻结功能和TTC时间戳

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2 ABOM自动离线管理和AWUM自动唤醒

在这里插入图片描述

6.3 NART自动重传,RFLM锁定模式和TXFP报文发送优先级的判断方法

(1).在下图中的RFLM锁定模式,如果不锁定,每个CAN控制器有六个报文,在六个报文满了以后,他会继续发,0,1,2,3,4,5,他会把0给覆盖了。
(2).然后就是下图的TXFP,报文发送优先级判断,比如发送邮箱0,1,2,我们先存把要发的东西先存进0,再存1,再存2邮箱,然后存进来的ID号是0的优先级最高,然后到2,在到1邮箱,这时候,我们可以控制TXFP选择是先存进来的先发送还是看ID优先级发送。
在这里插入图片描述

6.4 波特率设置

(1).BS1就是下图的TS1,然后如果写2就等于2+1(Tq),BS2就等于下图的TS2,也是+1。
(2).一个数据位的时间时间如下图,Tplk=1/f,这里挂载在stm32f103的APB1,由于预分频系数为1,所以时钟为32Mhz。

(3).N就是一个数据位的时间T1bit。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
配置的流程,如下图
在这里插入图片描述

6.5 发送邮箱

(1.)下图手册的黄线是ID号,也就是STID,然后IDE是标识符选择,选择使用标准标识符11位还是扩展标识符29位,EXID对扩展标识符写的,这里没有使用,就不需要使用扩展标识符,对标识符寄存器中的CAN_TIxR中的TMIDxR_TXRQ置1,这样子邮箱发完数据后,会进行硬件清0。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.6 接收FIFO

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6.7 验收筛选器

(1).STM32F4有28组筛选器(滤波器),STM32F103有14个组筛选器,每组筛选器有2个32位寄存器,每个寄存器可以过滤一个ID号,STM32F103最多就可以滤掉28个ID号。

(2).在图一中,过滤的方法有两种,一种是标识符列表模式,就是要接收的报文列成一个表,要求报文ID与列表中的某一个标识符完全完全相同都可以接收,,它设置5—7组的ID,然后你发的5—7组的ID,正好与接收的要求一样,就可以了,如果6组不一样,就只接收5和7;另一种是掩码模式,意思就是接收报文设置几个关键字,例如设置高四位是1111剩下的是xxxxxxx什么的,只要你高四位是1111,就可以接收。

(3).筛选长度,每个筛选器组由2个32位寄存器组成,然后每个筛选器组可以设置成一个32位筛选器或者两个16位筛选器,然后,在图二中,这一个32位筛选器或者两个16位筛选器和标识符列表模式跟掩码模式又搭配成四种工作模式。

(4).一个32位筛选器和两个16位的筛选器的标识符掩码模式,比如输入的ID号是10101…,然后我们想要10101是关键字的话,就掩码为11111,然后后面的配置为0,就是不需要管后面,关键字就是前面的10101,如图三。

(5).两个32位的筛选器的标识符列表模式,,2个寄存器存储的都是要筛选的ID(这里因为一个筛选器组使用32位时就只使用了一个寄存器,所以这里两个寄存器就是两个筛选器组),它只包含2个要筛选的ID值,然后例如筛选器组0和筛选器组1的筛选的ID是6和7的话对应的是6和7就筛选成功,最后在存储进来接收FIFO里面。

图一
在这里插入图片描述

图二
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
图三
在这里插入图片描述

七.CAN的结构体设置讲解

7.1 结构体总结

(1).初始化结构体就是设置波特率,工作模式,每个位有多长,构成。

(2).发送及接收结构体设置发送邮箱和接收报文FIFO。

(3).筛选器结构体可以设置筛选器过滤那些报文。

在这里插入图片描述

7.2 初始化结构体

(1).在图一中是初始化结构体全部的初始化。

(2).在图二中的参数是工作模式,从上往下分别是正常模式,环回模式,静默模式,环回静默模式。

(3).SJW是在文章四目录里面有记录,是再同步补偿宽度,设置1-4Tq,如图三。

(4).BS1也是文章目录四记录,参数如图四,计算波特率公式也在目录六的6.4。

(4).

图一
在这里插入图片描述
图二
在这里插入图片描述
图三
在这里插入图片描述
图四
在这里插入图片描述
图五
在这里插入图片描述

7.3 发送结构体

(1).图一是发送结构体的成员。

(2).想要发送数据时,可以调用图二的函数,第一个参数是选择使用哪个CAN(主从CAN),然后发送的报文就是第二个参数——结构体成员,然后发送数据时,它会存进去邮箱里面,然后在哪个邮箱空闲时,就先存进去哪个邮箱,返回值就是告诉你存进去了哪个邮箱里面——0,1,2邮箱,然后还有一给发送状态的函数,如图四,第一个参数是选择主从CAN,第二个参数是查找哪个邮箱,哪个邮箱就是图二函数的返回值进行查找,如果成功了,这个函数会返回返回值成功或者失败(图四中)。

(3).然后发送结构体的StdId就是标准标识符ID号,ExtId在手册上是扩展标识符ID号,但是这里的结构体ExtId是手册上的标准标识符ID号和扩展标识符ID号加在一起了,一共29位,然后IDE是选择是结构体StdId还是ExtId,在图三中是IDE的参数配置,从上到下是:标准标识符,扩展标识符和标准标识符+扩展标识符。

(4).RTR就是选择是数据帧还是远程帧(具体详解见目录二的2.1),然后图五从上到下的参数分别是数据帧和远程帧。

图一

在这里插入图片描述

图二
在这里插入图片描述
图三
在这里插入图片描述
图四
在这里插入图片描述
图五
在这里插入图片描述

7.4 接收结构体

(1).图一是接收结构体的成员

(2).如果想要接收报文,就使用图二这个函数,第一个参数选择主从CAN,第二个参数就是选择FIFO的号—0或者1,然后接收的报文就是第三个参数——结构体成员,接收结构体比发送结构体多了一个FMI结构体成员,FMI存储了筛选器的编号,表示是本报文是是经过哪个筛选器存储进来接收FIFO的。

(3).然后怎么知道是哪个FIFO里面有数据呢,就用图三的函数。

图一
在这里插入图片描述
图二
在这里插入图片描述
图三
在这里插入图片描述

7.5 筛选器结构体

(1).图一是筛选器结构体的成员。

(2).图二是筛选器结构体的初始化函数。

(3).在CAN_FxR1和CAN_FxR2寄存器中,结构体成员CAN_FilterIdHight,CAN_FilterIdLow,CAN_FilterMaskIdHight和,CAN_FilterMaskIdLow分别对应图四的红,黑,黄,绿。

(4).图五是剩下的结构体成员的参数设置。

图一
在这里插入图片描述
图二
在这里插入图片描述
图四
在这里插入图片描述

图五
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

八.CAN的原理图和接线

这里我们的TJA1050是收发器,如果板子上面没有,需要自己买一个,这里我使用的是STM32f103的正点原子战舰板,需要将跳线帽PA11与CAN_RX,PA12与CAN_TX连接。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

w15初识php基础

一、计算100之内的偶数之和 实现思路 所有的偶数除2都为0 代码实现 <?php # 记录100以内的偶数和 $number1; $num0; while($number<100){if($number%20){ $num$number;}$number1; } echo $num; ?>输出的结果 二、计算100之内的奇数之和 实现思路 所有的奇数除…

JavaScript常用技巧专题四

文章目录 一、使用箭头函数简化函数定义二、使用解构赋值简化变量声明三、使用模板字面量进行字符串拼接四、使用展开运算符进行数组和对象操作五、使用数组的高阶方法简化循环和数据操作六、使用条件运算符简化条件判断七、使用对象解构和默认参数简化函数参数八、使用函数式编…

7. 行为模式 - 状态模式

亦称&#xff1a; State 意图 状态模式是一种行为设计模式&#xff0c; 让你能在一个对象的内部状态变化时改变其行为&#xff0c; 使其看上去就像改变了自身所属的类一样。 问题 状态模式与有限状态机 的概念紧密相关。 有限状态机。 其主要思想是程序在任意时刻仅可处于几…

《PySpark大数据分析实战》-18.什么是数据分析

&#x1f4cb; 博主简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是wux_labs。&#x1f61c; 热衷于各种主流技术&#xff0c;热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员&#xff08;PCTA&#xff09;、TiDB数据库专家&#xff08;PCTP…

Confluent 与阿里云将携手拓展亚太市场,提供消息流平台服务

10 月 31 日&#xff0c;杭州云栖大会上&#xff0c;阿里云云原生应用平台负责人丁宇宣布&#xff0c;Confluent 成为阿里云技术合作伙伴&#xff0c;合作全新升级&#xff0c;一起拓展和服务亚太市场。 本次合作伙伴签约&#xff0c;阿里云与消息流开创领导者 Confluent 将进一…

掌握函数式组件:迈向现代化前端开发的关键步骤(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

Linux创建macvlan 测试bridge、private和vepa模式

Linux创建macvlan&#xff0c;测试bridge、private和vepa模式 最近在看Docker的网络&#xff0c;看到关于macvlan网络的介绍。查阅了相关资料&#xff0c;记录如下。 参考 1.Linux Macvlan 2.图解几个与Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN 环境 操…

Python遥感影像深度学习指南(1)-使用卷积神经网络(CNN、U-Net)和 FastAI进行简单云层检测

【遥感影像深度学习】系列的第一章,Python遥感影像深度学习的入门课程,介绍如何使用卷积神经网络(CNN)从卫星图像中分割云层 1、数据集 在本项目中,我们将使用 Kaggle 提供的 38-Cloud Segmentation in Satellite Images数据集。 该数据集由裁剪成 384x384 (适用…

十八、本地配置Hive

1、配置MYSQL mysql> alter user rootlocalhost identified by Yang3135989009; Query OK, 0 rows affected (0.00 sec)mysql> grant all on *.* to root%; Query OK, 0 rows affected (0.00 sec)mysql> flush privileges; Query OK, 0 rows affected (0.01 sec)2、…

Web前端 ---- 【Vue】vue路由守卫(全局前置路由守卫、全局后置路由守卫、局部路由path守卫、局部路由component守卫)

目录 前言 全局前置路由守卫 全局后置路由守卫 局部路由守卫之path守卫 局部路由守卫之component守卫 前言 本文介绍Vue2最后的知识点&#xff0c;关于vue的路由守卫。也就是鉴权&#xff0c;不是所有的组件任何人都可以访问到的&#xff0c;需要权限&#xff0c;而根据权限…

深度学习 | 梯度下降算法及其变体

一、最优化与深度学习 1.1、训练误差与泛化误差 1.2、经验风险 1.3、优化中的挑战 1.3.1、局部最小值 1.3.2、 鞍点 经常是由于模型复杂度过高或者训练样本数据过少造成的 —— Overfitting 1.3.3、悬崖 1.3.4、长期依赖问题 二、损失函数 2.1、损失函数的起源 损失函数(loss…

【prompt一】Domain Adaptation via Prompt Learning

1.Motivation 当前的UDA方法通过对齐源和目标特征空间来学习域不变特征。这种对齐是由诸如统计差异最小化或对抗性训练等约束施加的。然而&#xff0c;这些约束可能导致语义特征结构的扭曲和类可辨别性的丧失。 在本文中&#xff0c;引入了一种新的UDA提示学习范式&#xff0…

蓝牙物联网在汽车领域的应用

I、蓝牙的技术特点 ​ 1998 年 5 月&#xff0c;瑞典爱立信、芬兰诺基亚、日本东芝、美国IBM 和英特尔公司五家著名厂商&#xff0c;在联合拓展短离线通信技术的标准化活动时提出了蓝牙技术的概念。蓝牙工作在无需许可的 2.4GHz 工业频段 (SIM)之上(我国的频段范围为2400.0~248…

计算机毕业设计 基于SpringBoot的房屋租赁管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

flutter 实战 之 dio小实践

我们要对dio进行封装 class HttpRequest {static Future request(String url,{String method "get",Map<String,dynamic>? params})async{// 创建dio实例BaseOptions baseOptions BaseOptions(baseUrl: base_url,connectTimeout: Duration(seconds: 1));fi…

STM32软硬件CRC测速对比

硬件CRC配置 以及软硬件CRC速度对比 使用CUBEMX配置默认使用的是CRC32&#xff0c;从库中可以看出这一点 HAL库提供了以下两个计算函数 HAL_CRC_Accumulate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength); 这个函数用于在已有的CRC校验结果的基础上累积…

LV.13 D6 Linux内核安装及交叉编译 学习笔记

一、tftp加载Linux内核及rootfs 1.1 uboot内核启动命令 bootm 启动指定内存地址上的Linux内核并为内核传递参数 bootm kernel-addr ramdisk-addr dtb-addr 注: kernel-addr: 内核的下载地址 ramdisk-addr: 根文件系统的下载地址 …

【线性代数】决定张成空间的最少向量线性无关吗?

答1&#xff1a; 是的&#xff0c;张成空间的最少向量是线性无关的。 在数学中&#xff0c;张成空间&#xff08;span space&#xff09;是一个向量空间&#xff0c;它由一组向量通过线性组合&#xff08;即每个向量乘以一个标量&#xff09;生成。如果这组向量是线性无关的&…

HP笔记本电脑进入BIOS的方法主要有两种,它们使用场合不同

BIOS&#xff08;基本输入输出系统&#xff09;是一种实用程序&#xff0c;它在你按下电源按钮后启动并加载操作系统。无论是要更新HP笔记本电脑的BIOS系统&#xff0c;还是清除前一个系统中的错误&#xff0c;第一步都是进入BIOS实用程序。 在按键输入BIOS设置并对其进行修改…

react中使用redux最简单最方便的方式,配合rematch简化操作,5分钟学会

react中使用状态管理的方式也很多&#xff0c;比如redux和mobx等&#xff0c;今天这一片就讲一下redux的入门到熟练使用&#xff0c;主要是要理解它redux的组成有哪些&#xff0c;到怎么创建&#xff0c;和组建中怎么使用三个问题。这里先放上官网文档&#xff0c;不理解的地方…