【STM32学习】TB6612FNG驱动芯片的学习,驱动电路的学习
目录
1、TB6612电机驱动芯片
1.1如下是芯片的引脚图:
1.2如下图是电机的控制逻辑:
1.3MOS管运转逻辑
1.3典型应用电路
2、H桥驱动电路
2.1、单极模式
2.2、双极模式
2.3、高低端MOS管导通条件
2.4、H桥电路设计
2.5、自举电路
3、电气特性
3.1. 供电电压
3.2. 输入电压
3.3. 输出电压
3.4. 输出电流
3.5. 其他电气特性
1、TB6612电机驱动芯片
TB6612芯片是一款双路H桥型的直流电机驱动芯片,可以驱动两个直流电机并控制其转速和方向。
参考:C141517_电机驱动芯片_TB6612FNG,C,8,EL_规格书_TOSHIBA(东芝)电机驱动芯片规格书
电机驱动芯片——DRV8833、TB6612、A4950、L298N的详解与比较_51CTO博客_电机驱动模块tb6612
1.1如下是芯片的引脚图:
VM:接驱动电机所要的电压。
PWM:接控制信号,控制电机转速;
AIN1;AIN1;BIN1;BIN1:控制电机的状态,控制电机正转反转,控制电机制动。
STBY:控制电机工作和待机。
AO1AO2:是A号电机的输入口,将信号传递到电机。BO则是B号电机的口。
1.2如下图是电机的控制逻辑:
STBY接高电平,电机工作。
IN1IN2:都接高电平:电机制动
IN1IN2:都接低电平,电机停止
IN1IN2:一高一低,电机反转,转速取决于PWM的占空比
IN1IN2:一低一高,电机正转,转速取决于PWM的占空比
1.3MOS管运转逻辑
1.3典型应用电路
可驱动两个电机
2、H桥驱动电路
2.1、单极模式
单极模式:电机电枢驱动电压极性是单一的。
-
优点:启动快,能加速,刹车,能耗制动,能量反馈,调速性能不如双极模式好,但是相差不多,电机特性也比较好。在负载超速时也能提供反向力矩。
-
缺点:刹车时,不能减速到0,速度接近0速度时没有制动力。不能突然倒转。动态性能不好,调速静差稍大。
PWM和PWMN是互补的PWM信号,一般用高级控制定时器的通道和互补通道控制。
在PWM为高电平时:MOS管1和4都导通,MOS管2和3都截止,电流从电源正极,经过MOS管1,从左到右流过电机、然后经过MOS管4流入电源负极。
在PWM为低电平时:MOS管2和4都导通,MOS管1和3都截止,根据楞次定律,存在自感电动势,电流还是从左到右流过电机,经过MOS管4和MOS管2形成电流回路。
2.2、双极模式
双极模式:电枢电压极性是正负交替的。
-
优点:能正反转运行,启动快,调速精度高,动态性能好,调速静差小,调速范围大,能加速,减速,刹车,倒转,能在负载超过设定速度时,提供反向力矩,能克服电机轴承的静态摩擦力,产生非常低的转速。
-
缺点:控制电路复杂。在工作期间,4个MOS管都处于工作状态,功率损耗大,电机容易发烫。
PWM1和PWM1N、PWM2和PWM2N是PWM互补通道。
使用高级控制定时器通道和互补通道控制双极模式中,PWM1和PWM2周期相同,占空比相同,极性相反,使得对角线上的两个MOS管同时导通,同时关断。
PS不懂:这个又是怎么实现反转的??PWM1高电平是正转,低电平就反转了??
2.3、高低端MOS管导通条件
使用栅极驱动芯片,通过自举电容,利用电容两端电压不能突变的特性,使VB和VS的的电压差维持在一个VCC值,而VB的值相当于HO高电平时的电压,这样就使高端MOS管Vgs的电压差也是一个VCC值,这样高端MOS管就能导通了。
低端MOS管,根据栅极驱动芯片的引脚特性,LO高电平时的电压就是VCC的电压,低端源极接地,Vgs的电压差也是一个VCC值,这样低端MOS管就能导通了。
2.4、H桥电路设计
假设图中N-MOS管的Vgs阈值为3V,VCC=24V。
对于下桥臂Q2MOS管可以使用STM32芯片引脚直接控制,因为STM32的PWM高电平是3.3V足够使N-MOS管导通。
上桥臂Q1 MOS管无法直接使用STM32芯片引脚使其导通,因为假设Q1导通,漏极D和源极S电压几乎相等(Rds非常小),即VA=VCC=24V,这样要求Vg>=VA+Vgs=27V。简单来说就是,Vg大于27V,Q1导通,小于27V,Q1截止。所以就需要一个这样的电路:把STM32的3.3VPWM信号升压到27V电压上,这个电路可以用自举电路来实现。
上桥臂驱动:自举电路
下桥臂驱动:电平控制
实际电路设计中,一般把Vgs设置为10~20V,因为这样保证MOS管完全导通。
还有一个问题当MOS管完全导通时,MOS管的内阻Rds一般来说就比较小在几毫欧,就相当于一根导线。但是当MOS管不完全导通时,也就是说Vgs小于开启电压时,MOS就处于不完全导通状态,那么MOS管的内阻就比较大,而电机驱动板的电流也比较大。那么MOS的发热就会非常严重,很可能会烧坏芯片。
2.5、自举电路
芯片在Vcc和VB脚之间接了一个二极管,在VB和VS之间接了一个电容。这便构成了一个自举电路。
作用:由于负载(电机)相对于上桥臂和下桥臂MOS位置不同,而MOS的开启条件为Vgs>Vth,这便会导致想要上桥臂MOS导通,则其栅极对地所需的电压较大。
因为下桥臂MOS源极接地,想要导通只需要令其栅极电压大于开启电压Vth。
而上桥臂MOS源极接到负载,如果上桥臂MOS导通,那么其源极电压将上升到H桥驱动电压也就是MOS的供电电压,此时如果栅极对地电压不变,那么Vgs可能小于Vth,又关断。
因此想要使上桥臂MOS导通,必须想办法使其Vgs始终大于或一段时间内大于Vth(即栅极电压保持大于MOS管的电源电压+Vth)。
参考:
H桥电机驱动电路详解
3、电气特性
TB6612FNG 芯片的电气特性详细描述如下:
3.1. 供电电压
- Vcc(小信号电源电压):最小值为 2.7V,典型值为 3V,最大值为 5.5V。此电压为芯片内部的控制逻辑等小信号电路提供电源,确保芯片能正常处理输入信号、执行控制逻辑等操作。例如,芯片内部的控制逻辑电路依据输入信号来决定电机驱动模式(正转、反转、刹车、停止等),而 Vcc 为这些逻辑判断和信号处理过程提供必要的电力支持。
- VM(电机电源电压):最小值为 2.5V,典型值为 5V,最大值为 13.5V,并且规定其最大值为 15V。VM 是直接为电机供电的电源输入,其电压范围决定了芯片能够驱动电机的电压适应能力。当 VM 处于合适的范围时,芯片可以有效地控制电机的运转,如在驱动小型直流电机时,根据电机的额定电压选择合适的 VM 值,以保证电机正常工作且芯片不会因过压或欠压而损坏。
3.2. 输入电压
- VIN(针对 IN1、IN2、STBY、PWM 引脚):范围是 -0.2V 到 6V。这个电压范围限定了外部输入到芯片控制引脚(如控制电机正反转的 IN1 和 IN2 引脚、用于控制芯片待机状态的 STBY 引脚以及用于 PWM 调速的 PWMA 和 PWMB 引脚)的信号电平。如果输入信号电压超出此范围,芯片可能无法正确识别输入信号,导致电机驱动异常或芯片工作不稳定。例如,当 IN1 和 IN2 引脚接收到的信号电压不符合 -0.2V 到 6V 的范围时,芯片可能无法准确判断电机应执行的动作(正转、反转等)。
- PWM输入的频率问题:一般来说,PWM 输入频率应在芯片能够正常响应和处理的范围内,同时要考虑芯片内部电路的速度和响应能力。如果频率过高,芯片可能无法及时准确地处理输入信号,导致电机驱动不稳定;如果频率过低,可能无法实现精确的电机速度控制,且可能产生可听噪声或电机运行不平稳等问题。
- 如果应用对电机速度控制精度要求较高,例如在精密仪器设备或自动化生产线上的电机驱动,可能需要较高的 PWM 频率。较高频率可以提供更精细的占空比调整,从而实现更精确的速度控制
- 一般来说,频率高于 20kHz 时,人耳通常难以听到由 PWM 引起的噪声,但具体还需结合电机特性和实际应用环境测试确定。
- PWM控制的频率可达100KHZ
3.3. 输出电压
- VOUT(针对 O1、O2 引脚):最大值为 15V。O1 和 O2 引脚是芯片驱动电机的输出引脚,连接到电机的绕组两端。该输出电压范围决定了芯片能够提供给电机的最高电压,从而影响电机的转速和扭矩等性能。例如,对于一个额定电压为 12V 的电机,芯片输出的电压在 0 - 15V 范围内可根据控制信号进行调整,以实现电机的调速功能。
3.4. 输出电流
- IOUT(平均值):每通道为 1.2A。这是芯片在持续工作状态下每个输出通道能够稳定提供的平均电流大小。在驱动电机等负载时,如果负载的平均电流需求不超过 1.2A,芯片可以长时间稳定工作。例如,驱动一些小型低功率电机或其他需要持续电流驱动且电流需求不大的负载时,芯片的每个通道可以满足其平均电流要求。
- IOUT(峰值):当 tw = 20ms 连续脉冲且占空比≤20% 时为 2A;当 tw = 10ms 单脉冲时为 3.2A。峰值电流表示芯片在短时间内能够提供的最大电流能力,主要用于应对电机启动瞬间或其他需要较大瞬时电流的情况。例如,电机启动时可能需要较大的扭矩,此时瞬间电流需求较大,芯片在满足特定脉冲宽度条件下(如 tw = 10ms 单脉冲时)可以提供高达 3.2A 的峰值电流来帮助电机启动。但需要注意的是,峰值电流只能在短时间内提供,不能持续工作在该电流水平,否则会导致芯片过热等问题。
- 另外,当 VM≥4.5V 时,输出电流(H - SW)典型值可达 1.0A;在 4.5V>VM≥2.5V 且无 PWM 操作时,输出电流(H - SW)典型值为 0.4A。这里的 H - SW 可能指的是与高侧开关相关的输出电流情况。这表明电机电源电压 VM 的大小会影响芯片的输出电流能力,在不同的 VM 条件下,芯片能够提供的典型输出电流值不同,用户在设计电路时需要根据实际的电源电压情况和负载电流需求来考虑芯片的适用性。
下面这个图没看懂,???
为什么占空比增加,输出电流反而减小了???
3.5. 其他电气特性
- 功耗:芯片自身(IC only)功耗为 0.78W;在 50mm×50mm 的 PCB 上,铜箔面积≥40% 时,功耗为 0.89W;在 76.2mm×114.3mm 的 PCB 上,铜箔面积≥30% 时,功耗为 1.36W。功耗参数反映了芯片在工作过程中的能量消耗情况,与芯片的发热程度密切相关,也影响着对散热设计的要求。例如,在设计 PCB 布局时,如果空间允许,选择较大尺寸且铜箔面积较大的 PCB 可以更好地散热,保证芯片在正常功耗下稳定工作,避免因过热导致性能下降或损坏。
- 工作温度范围: -20°C 至 85°C。这个温度范围限定了芯片能够正常工作的环境温度区间。在实际应用中,如果环境温度超出此范围,可能会影响芯片的性能,如导致输出电流能力下降、控制精度降低等问题,甚至可能损坏芯片。例如,在高温环境下,芯片内部的电子元件性能可能发生变化,从而影响其对电机的驱动效果;而在低温环境下,可能会影响芯片的启动特性或使某些参数偏离正常范围。
- 存储温度范围: -55°C 至 150°C。这是芯片在未上电、存储状态下能够承受的温度范围,超出此范围可能会对芯片的物理结构和电气性能造成永久性损坏,影响芯片后续的使用。例如,在芯片运输、仓储过程中,需要确保环境温度在存储温度范围内,以保证芯片的质量和可靠性。
- 内置保护电路:包括热关断电路和低压检测电路。热关断电路在芯片温度过高时会自动切断部分或全部功能,以保护芯片不被损坏;低压检测电路用于监测电源电压,当电压低于一定阈值时可能采取相应措施(如发出警告信号或进入特定的保护模式),确保芯片在异常电压情况下的安全性。这些保护电路有助于提高芯片在复杂工作环境和电源条件下的可靠性和稳定性。
- 输出低导通电阻:0.5Ω(上管 + 下管,典型值 @VM≥5V)。较低的导通电阻意味着在芯片输出驱动电机时,自身损耗的能量较小,能够更高效地将电能传输到电机上,减少发热,提高驱动效率。例如,当驱动电流为 1A 时,根据欧姆定律(U = IR),在导通电阻为 0.5Ω 的情况下,芯片上产生的压降仅为 0.5V,消耗的功率为 0.5W,相比高导通电阻的情况,能够减少能量浪费并降低芯片的发热程度。
- 待机(省电)系统:待机电流 1μA(典型值)。当芯片进入待机状态(通过 STBY 引脚控制)时,其功耗非常低,仅消耗 1μA 的电流,这对于一些需要长时间待机且对功耗敏感的应用场景非常重要,如电池供电的设备。在待机状态下,芯片可以保持部分功能(如监测外部信号等),同时最大限度地降低能源消耗,延长设备的电池续航时间。
- 控制输入电流:高电平输入电流(IH)在 VIN = 3V 时,典型值为 5μA,最大值为 15μA;VIN = 0V 时,最大值为 25μA;低电平输入电流(IIL (STB))最大值为 1μA。这些参数描述了芯片控制引脚在不同输入电压下的输入电流大小,对于设计外部驱动电路(如微控制器与芯片之间的连接电路)时选择合适的上拉电阻或下拉电阻等元件非常重要,以确保输入信号能够正确地被芯片识别,同时避免过大的输入电流对芯片或外部电路造成不良影响。
- 输出饱和电压(针对 U + L):当输出电流为 1A、Vcc = VM = 5V 时,最大值为 0.7V,典型值为 0.5V;输出电流为 0.3A、Vcc = VM = 5V 时,最大值为 0.21V,典型值为 0.15V。输出饱和电压是指芯片输出处于导通状态且接近完全导通时,输出引脚与地之间的电压降。这个电压降会导致在输出电流通过时产生一定的功率损耗(P = I×Vsat),影响芯片的驱动效率。例如,当输出电流为 1A 时,在典型饱和电压 0.5V 的情况下,功率损耗为 0.5W,较低的饱和电压有助于提高芯片的整体效率,减少发热。
- 输出泄漏电流(针对 IL):输出端 U 在 VM = VOUT = 15V 时,最大值为 1μA;输出端 L 在 VM = 15V、VOUT = 0V 时,最小值为 -1μA。输出泄漏电流是指在芯片输出处于截止状态时,从输出引脚流出或流入的微小电流。虽然泄漏电流通常很小,但在一些对功耗和精度要求极高的应用中,需要考虑其影响,以确保系统的性能和稳定性。例如,在高精度测量仪器或低功耗设备中,即使微小的泄漏电流也可能对测量结果或电池续航时间产生影响。
- 再生二极管正向电压(针对 VF):输出端 U 和输出端 L 在 IF = 1A 时,最大值为 1.1V,典型值为 1V。再生二极管在芯片驱动电机等感性负载时起到续流作用,当电机电流突然变化(如电机停止或转速突变)时,电机绕组产生的反电动势会通过再生二极管形成回路,保护芯片免受过高电压冲击。正向电压参数影响着续流过程中的能量损耗,较低的正向电压可以减少能量损失,提高系统效率。
- 低电压检测电压(设计目标):恢复电压(UVLC)为 2.2V,检测电压(UVLD)为 1.9V。这些电压值用于芯片内部的低压检测电路,当电源电压下降到 UVLD 以下时,芯片可能会采取相应措施(如发出警告或进入特定保护模式),而当电源电压回升到 UVLC 以上时,芯片可能恢复正常工作。这有助于确保芯片在电源电压波动或不稳定的情况下能够正常工作并保护自身不受损坏。
- 响应速度(设计目标):上升时间(tr)为 24ns,下降时间(tf)为 41ns。响应速度描述了芯片对输入信号变化的响应快慢程度,在一些对控制精度和响应及时性要求较高的应用中(如高速电机控制或精确位置控制),较快的响应速度能够使芯片更及时地调整电机的驱动状态,提高系统的动态性能。例如,在电机需要快速加速或减速的应用场景中,芯片能够迅速根据控制信号调整输出电流和电压,从而实现电机的快速响应。
- 死区时间(设计目标):H 到 L 的穿透保护时间为 50ns,L 到 H 的穿透保护时间为 230ns。死区时间是为了防止在芯片控制电机的 H 桥电路中,上下管同时导通(穿透电流)而设置的。在电机驱动模式切换时(如从正转到反转或反之),上下管的导通状态需要有一定的时间间隔(死区时间),以避免电源短路,保护芯片和电机。不同的死区时间要求在设计电机驱动电路和控制算法时需要特别注意,确保在满足芯片要求的同时实现电机的平稳运行。
相关文章:
【STM32学习】TB6612FNG驱动芯片的学习,驱动电路的学习
目录 1、TB6612电机驱动芯片 1.1如下是芯片的引脚图: 1.2如下图是电机的控制逻辑: 1.3MOS管运转逻辑 1.3典型应用电路 2、H桥驱动电路 2.1、单极模式 2.2、双极模式 2.3、高低端MOS管导通条件 2.4、H桥电路设计 2.5、自举电路 3、电气特性 3…...
【AI战略思考13】克服懒惰,保持专注,提升效率,不再焦虑
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 引言 我发现自己最近非常懒惰,浪费了很多时间,也容易分心,不够专注,效率低下,且每天都有点焦虑,因此制定了下面的要求和作息时间表。 目…...
基于Vue3+Element Plus 实现多表单校验
使用场景 表单校验在日常的开发需求中是一种很常见的需求,通常在提交表单发起请求前校验用户输入是否符合规则,通常只需formRef.value.validate()即可校验,但是,例如一些多步骤表单、动态表单、以及不同的用户角色可能看到不同的表…...
“岗位复合化、技能层次化” 高职大数据技术专业人才培养实践
在全球数字化浪潮的推动下,大数据技术已经成为引领社会进步和经济发展的核心动力。随着《关于深化现代职业教育体系建设改革的意见》等系列指导问文件的发布,我国高职大数据技术专业的教育正迎来全新机遇与挑战。这些政策不仅明确了职业教育改革的方向&a…...
Day2 生信新手笔记: Linux基础
一、基础知识 1.1 服务器 super computer 或 server 1.2 组学数据分析 组学数据:如基因组学、转录组学、蛋白质组学等; 上游分析:主要涉及原始数据的获取和初步处理,计算量大,消耗的资源较多,在服务器完…...
AI开发-数据可视化库-Seaborn
1 需求 概述 Seaborn 是一个基于 Python 的数据可视化库,它建立在 Matplotlib 之上。其主要目的是使数据可视化更加美观、方便和高效。它提供了高层次的接口和各种美观的默认主题,能够帮助用户快速创建出具有吸引力的统计图表,用于数据分析和…...
如何把Qt exe文件发送给其他人使用
如何把Qt exe文件发送给其他人使用 1、先把 Debug改成Release2、重新构建项目3、运行项目4、找到release文件夹5、新建文件夹,存放exe文件6、打开qt控制台串口7、下载各种文件8、压缩,发送压缩包给别人 1、先把 Debug改成Release 2、重新构建项目 3、运行…...
力扣103.二叉树的锯齿形层序遍历
题目描述 题目链接103. 二叉树的锯齿形层序遍历 给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 示例 1ÿ…...
MOH: MULTI-HEAD ATTENTION AS MIXTURE-OFHEAD ATTENTION
当前的问题 多头注意力使用多个头部可以提高模型的精度。然而,并不是所有的注意力头都具有同样的重要性。一些研究表明,许多注意力头可以被修剪而不影响准确性。 此外,在多头注意中,每个注意头并行操作,最终输出是所…...
Linux的文件系统
这里写目录标题 一.文件系统的基本组成索引节点目录项文件数据的存储扇区三个存储区域 二.虚拟文件系统文件系统分类进程文件表读写过程 三.文件的存储连续空间存放方式缺点 非连续空间存放方式链表方式隐式链表缺点显示链接 索引数据库缺陷索引的方式优点:多级索引…...
力扣78题详解:C语言实现子集问题
力扣78题详解:C语言实现子集问题 题目描述 给定一个不含重复元素的整数数组 nums,返回其所有可能的子集(幂集)。 说明:解集不能包含重复的子集,顺序无关。 示例 输入:nums [1,2,3] 输出&am…...
按行数据拆分到工作表-Excel易用宝
有这样一份工作表,现在要对工作表按指定行数进行拆分,如果你还在选择数据区域复制粘贴到每个工作表中,那这样的效率也太低了。 按指定行数拆分工作表,就用易用宝。 单击Excel易用宝,合并与拆分,拆分工作表…...
.net core 创建linux服务,并实现服务的自我更新
目录 创建服务创建另一个服务,用于执行更新操作给你的用户配置一些systemctl命令权限 创建服务 /etc/systemd/system下新建服务配置文件:yourapp.service,内容如下: [Unit] Descriptionyourapp Afternetwork.target[Service] Ty…...
无人机的起降装置:探索起飞和降落的秘密 !
一、起降系统的运行方式 起飞方式 垂直起飞:小型无人机通常采用垂直起飞方式,利用螺旋桨产生的升力直接从地面升起。这种方式适用于空间有限或需要快速起飞的场景。 跑道起飞:大型无人机或需要较长起飞距离的无人机,可能会采用…...
Apache Airflow 快速入门教程
Apache Airflow已经成为Python生态系统中管道编排的事实上的库。与类似的解决方案相反,由于它的简单性和可扩展性,它已经获得了普及。在本文中,我将尝试概述它的主要概念,并让您清楚地了解何时以及如何使用它。 Airflow应用场景 …...
数学题转excel;数学题库;数学试卷转excel;大风车excel
一、数学试卷转excel 有些需要刷题的朋友,需要将题库数学题转为excel格式,便于管理 前端时间帮一位朋友实现了数学题转excel,包括选择题、填空题、分析题 示例: 二、问题 数学题是最难以处理的试题,理由如下 1、有…...
【C++】类和对象(下)
目录 前言 一、再探构造函数 二、类型转换 三、static 成员 四、友元 五、内部类 六、匿名对象 七、对象拷贝时的编译器优化 总结 前言 本文主要内容:构造函数的再探--初始化列表、内置类型与自定义类型之间的转换、类的static成员、友元、内部类、匿名对…...
vue多页面应用集成时权限处理问题
在多页面应用(MPA)中,权限管理通常会涉及到每个页面的访问控制、身份验证、以及权限校验。以下是几种常见的权限处理方式: 1. 前端路由权限控制 原理:虽然是多页面应用,通常每个页面会独立加载和渲染&…...
输出保留3位小数的浮点数
输出保留3位小数的浮点数 C语言代码C代码Java代码Python代码 💐The Begin💐点点关注,收藏不迷路💐 读入一个单精度浮点数,保留3位小数输出这个浮点数。 输入 只有一行,一个单精度浮点数。 输出 也只有一…...
openssl的运用
一、概述 Opssl是一个用于TLS/SSL协议的工具包,也是一个通用密码库。 包含了国密sm2 sm3 sm4,包含了对称加密,非对称加密,单项散列,伪随机、签名,密码交换,证书等一些算法库。 为了深层次的学习…...
C++STL之vector(超详细)
CSTL之vector 1.vector基本介绍2.vector重要接口2.1.构造函数2.2.迭代器2.3.空间2.3.1.resize2.3.2.capacity 2.4.增删查找 3.迭代器失效4.迭代器分类 🌟🌟hello,各位读者大大们你们好呀🌟🌟 🚀Ὠ…...
RabbitMQ消息可靠性保证机制5--消息幂等性处理
RabbitMQ层面有实现“去重机制”来保证“恰好一次”吗?答案是没并没有,而且现在主流的消息中间件都没有实现。 一般解决重复消息的办法是:在消费端让我们消费消息操作具有幂等性。 幂等性问题并不是消息系统独有,而是࿰…...
24/12/1 算法笔记<强化学习> 创建Maze交互
我们今天制作一个栅格的游戏。 我们直接上代码教学。 1.载入库和查找相应的函数版本 import numpy as np import time import sysif sys.version_info.major 2:import Tkinter as tk else:import tkinter as tk 2.设置长宽和单元格大小 UNIT 40 MAZE_H 4 MAZE_W 4 3.初始…...
c++:模版 template
一、模版 1.格式: template <typname T> 2.实现 2.1自动推导 模板只对紧跟在后面的第一行代码有效,如果后面还想定义模板函数需要重新定义模板 #include <iostream> #include <string>template <typename T> void Print(T v…...
javascript切换类、删除类、修改类以及增加类
在JavaScript中,操作DOM元素的类(class)是一个常见的操作。以下是一些基本的方法来切换类、删除类、修改类以及增加内联样式: 切换类(Toggle Class) 切换类意味着如果类存在则移除它,如果不存…...
区块链学习笔记(2)--区块链的交易模型part1
模型基础 区块链的tx分为两种模型,分别是比特币为代表的UTXO(Unspent Transaction Output)模型,和以太坊为代表的Account模型。前者适用于货币记账,后者适用于链上应用。 UTXO模型 类似于现金的交易模型 一个tx包含…...
反射知识总结
狂神说 反射的功能: 类加载内存分析 类加载的时候,class对象就形成了。 类无论有多少对象,class对象只有一个。 获取类对象三种方式 反射,就是通过api获取一个类的类对象: 有三种方式: 方法一…...
selenium部署分布式 UI 自动化测试环境-Docker
一、根据selenium/hub官网的配置信息,进行配置。 How to run this image The Hub and Nodes will be created in the same network and they will recognize each other by their container name. A Docker network needs to be created as a first step.Create …...
算法刷题Day5: BM52 数组中只出现一次的两个数字
描述: 一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 要求:空间复杂度 O(1),时间复杂度O(n)。 题目传送门 is here 思路: 方法一:最简单的思路就…...
使用docker-compose部署搜索引擎ElasticSearch6.8.10
背景 Elasticsearch 是一个开源的分布式搜索和分析引擎,基于 Apache Lucene 构建。它被广泛用于实时数据搜索、日志分析、全文检索等应用场景。 Elasticsearch 支持高效的全文搜索,并提供了强大的聚合功能,可以处理大规模的数据集并进行快速…...
多线程篇-5--线程分类(线程类型,springboot中常见线程类型,异步任务线程)
常见的线程类型包括用户线程(User Threads)、守护线程(Daemon Threads)、主线程(Main Thread)、工作线程(Worker Threads)和线程池中的线程。 一、用户线程(User Thread…...
详解高斯消元
详解高斯消元 好东西,可以求所有一次方程组的解。 \color {red} 好东西,可以求所有一次方程组的解。 好东西,可以求所有一次方程组的解。 前置知识 一般消元法的公理: 两方程互换,解不变; 一方程乘以非零数 k k k,解不变; 一方程乘以数 k k k加上另一方程,解不变。 …...
【Python网络爬虫笔记】5-(Request 带参数的get请求) 爬取豆瓣电影排行信息
目录 1.抓包工具查看网站信息2.代码实现3.运行结果 1.抓包工具查看网站信息 请求路径 url:https://movie.douban.com/typerank请求参数 页面往下拉,出现新的请求结果,参数start更新,每次刷新出20条新的电影数据 2.代码实现 # 使用网络爬…...
泷羽sec- shell编程(8) until循环以及函数基本创建调用 学习笔记
声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…...
Apache Flink从Kafka中消费商品数据,并进行商品分类的数量统计题
使用Apache Flink从Kafka中消费商品数据,并进行商品分类的数量统计是一个典型的流处理任务。以下是一个详细的步骤指南和示例代码,帮助你实现这一功能。 ### 前提条件 1. **安装Flink**:确保你的环境中已经安装了 Apache Flink。 2. **安装…...
Ubuntu 安装 MariaDB
安装 MariaDB具体步骤 1、更新软件包索引: sudo apt update2、安装 MariaDB 服务器: sudo apt install mariadb-server3、启动 MariaDB 服务(如果未自动启动): sudo systemctl start mariadb4、设置 MariaDB 开机启…...
GPT打字机效果—— fetchEventSouce进行sse流式请求
EventStream基本用法 与 WebSocket 不同的是,服务器发送事件是单向的。数据消息只能从服务端到发送到客户端(如用户的浏览器)。这使其成为不需要从客户端往服务器发送消息的情况下的最佳选择。 const evtSource new EventSource(“/api/v1/…...
Leetcode 3373. Maximize the Number of Target Nodes After Connecting Trees II
Leetcode 3373. Maximize the Number of Target Nodes After Connecting Trees II 1. 接替思路2. 代码实现 题目链接:3373. Maximize the Number of Target Nodes After Connecting Trees II 1. 接替思路 这一题和前一题Leetcode 3372其实整体思路上并没有啥太大…...
JS的魔法三角:constructor、prototype与__proto__
在JavaScript中,constructor、prototype和__proto__是与对象创建和继承机制紧密相关的三个概念。理解它们之间的关系对于掌握JavaScript的面向对象编程至关重要。下面将详细介绍这个魔法三角: 1. constructor 定义:constructor是一个函数&am…...
用c语言完成俄罗斯方块小游戏
用c语言完成俄罗斯方块小游戏 这估计是你在编程学习过程中的第一个小游戏开发,怎么说呢,在这里只针对刚学程序设计的学生,就是说刚接触C语言没多久,有一点功底的学生看看,简陋的代码,简陋的实现࿰…...
Leetcode打卡:N皇后
执行结果:通过 题目:51 N皇后 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#…...
位运算在嵌入式系统开发中的应用
目录 一、数据存储与节省 “绝技” 1.1. 传感器数据存储挑战 1.2. 位运算解决方案 1.2.1. 数据整合 1.2.2. 数据提取 1.3. 收益分析 二、硬件控制 “精准操纵术” 2.1. 位运算操控硬件寄存器的实例 2.2. 位运算在硬件控制中的优势 2.3. 电机驱动芯片寄存器控制示例 …...
livekit 服务部署
本地起 1. 拉取生成文件镜像 sudo docker pull livekit/generate 2. 生成配置文件 sudo docker run --rm -v $PWD:/output livekit/generate --local (记住输出信息) 3. 拉取livekit/livekit-server sudo docker pull livekit/livekit-server 4. 开始运行服务 sudo docker run…...
笔记:visual studio2022编译 和 运行 VTK9.4.0
一、下载源码 VTK官网下载对应源码。 Download | VTKhttps://vtk.org/download/ 二、编译动态库(基于Win11 24h) 1. 用VS打开VTK源码的CMakeLists.txt,等待项目配置完成。 生成完毕如图 2.生成动态库,点击全部生成,…...
【Linux | 计网】TCP协议深度解析:从连接管理到流量控制与滑动窗口
目录 前言: 1、三次握手和四次挥手的联系: 为什么挥手必须要将ACK和FIN分开呢? 2.理解 CLOSE_WAIT 状态 CLOSE_WAIT状态的特点 3.FIN_WAIT状态讲解 3.1、FIN_WAIT_1状态 3.2、FIN_WAIT_2状态 3.3、FIN_WAIT状态的作用与意义 4.理解…...
Qt Sensors 传感器控制介绍篇
文章目录 Qt Sensors 模块介绍前言 什么是 Qt Sensors?主要特点: 支持的传感器类型Qt Sensors 的核心组件应用场景优势总结 Qt Sensors 模块介绍 前言 随着现代硬件设备的不断发展,传感器已成为许多设备(如智能手机、平板电脑和…...
探索3D世界:使用 lib3ds 读取和解析 3DS 文件
在3D图形开发中,读取和解析3DS文件是创建和渲染3D场景的第一步。3DS(3D Studio)文件格式是一种广泛使用的3D模型文件格式,它包含了多种类型的数据,用于描述3D场景中的物体、材质、相机、灯光和动画等。lib3ds 是一个开…...
【开源免费】基于SpringBoot+Vue.JS服装生产管理系统(JAVA毕业设计)
博主说明:本文项目编号 T 066 ,文末自助获取源码 \color{red}{T066,文末自助获取源码} T066,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...
计算机技术:冯·诺伊曼架构
冯诺伊曼架构(Von Neumann Architecture)是由著名数学家和计算机科学家约翰冯诺伊曼(John von Neumann)在20世纪40年代提出的一种计算机设计模型。它奠定了现代通用计算机设计的基础。 1. 核心思想 冯诺伊曼架构的核心思想是存储…...
在Window10或11系统中同时安装 JDK8 和 JDK11
在Window10或11系统中同时安装 JDK8 和 JDK11 最近写项目,之前的项目是用Java8环境开发的,在二次迭代中,但是新开发的项目采用Java11环境来开发,所以需要同时安装JDK8和JDK11环境,但是两个环境是不能同时使用的&#…...