当前位置: 首页 > news >正文

TIM输出比较

文章目录

  • 前言
  • 一、TIM输出比较简介
  • 二、PWM简介
    • 2.1 PWM基本概念
    • 2.2 PWM参数
    • 2.3 PWM波形
    • 2.4 PWM基本结构
    • 2.5 PWM参数计算
  • 三、舵机简介
    • 3.1 舵机的工作原理
    • 3.2 输入PWM信号的要求
    • 3.3 硬件电路
  • 四、直流电机及驱动简介
    • 4.1 直流电机
    • 4.2 TB6612电机驱动芯片


前言

提示:本文主要用作在学习江科大自化协STM32入门教程后做的归纳总结笔记,旨在学习记录,如有侵权请联系作者

本文主要探讨STM32定时器的输出比较功能。它主要是用来输出PWM波形的,PWM波形又是驱动电机的必要条件,我们可以利用这一特性做一些电机相关的项目,比如智能车、机器人等。


一、TIM输出比较简介

输出比较,它的英文是OC,全称是Output Compare,直译就是输出比较的意思(另外,还有IC,全称是Input Capture,意为输入捕获。还有CC,全称为Capture/Compare,一般表示的是输入捕获和输出比较的单元)。输出比较可以通过比较CNT计数器与CCR捕获/比较寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形,这就是输出比较模块最主要的功能。

每个高级定时器和通用定时器都拥有4个输出比较的通道,可以同时输出4路PWM波形,并且高级定时器的前3个通道额外拥有死区生成电路和互补输出的功能(用于驱动三相无刷电机)。4个输出比较通道都有独立的CCR寄存器,但是它们共用同一个CNT计数器。

在这里插入图片描述

二、PWM简介

2.1 PWM基本概念

PWM(Pulse Width Modulation),即脉冲宽度调制。PWM波形是一个数字输出信号,是由高低电平组成的,是一种对模拟电平信号进行数字编码的方法。在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制来等效地获得所需要的模拟参量,常应用于电机控速等领域。也就是说,使用PWM波形可以用来等效地实现一个模拟信号的输出。

以LED呼吸灯为例,按理来说LED只能有完全亮和完全灭两种状态,怎么来实现控制亮度大小呢?那通过这个PWM波形就能实现。我们可以让LED不断点亮、熄灭、点亮、熄灭。当点亮、熄灭的频率足够大时,由于LED的余晖和人眼的视觉暂留效应,LED就会呈现出一个中等亮度,当调控点亮和熄灭的时间比例时就能让LED呈现出不同的亮度级别,这就是通过控制PWM输出频率以及占空比实现LED呼吸灯的原理。对于电机调速也是一样的,我们以一个很快的频率给电机通电、断电、通电、断电,那么电机的速度就能维持在一个中等速度,这就是PWM的基本思想。

使用PWM波形,就可以在数字系统等效输出模拟量,就能实现LED控制亮度、电机控速等功能了。PWM的秘诀就是:天下武功,唯快不破(注意:只有在具有惯性的系统中,才能用PWM对模拟信号进行编码

如下图所示,高低电平跳变的数字信号可以被等效地表示为中间虚线所表示的模拟量。当上面电平时间长一点,下面电平短一点的时候,等效的模拟量就偏向于上面。当下面电平时间长一点,上面电平时间短一点的时候,等效的模拟量就偏向于下面。也就是说,占空比越大,等效的模拟量就越趋近于数字量的高电平。占空比越小,等效的模拟量就越趋近于数字量的低电平,且这个等效关系一般而言是线性一一对应的。

在这里插入图片描述

2.2 PWM参数

如下图所示,Ts代表一个高低电平变换周期的时间。

在这里插入图片描述

在使用PWM对模拟量进行编码时,以下三个参数尤其重要:

频率 :f = 1 / Ts(周期的倒数就是频率),PWM的频率越快,它等效模拟的信号就越平稳,不过同时性能开销就越大,一般来说PWM的频率在几KHz到几十KHz之间。

占空比:q = Ton / Ts( Ton是高电平的时间,Ts是一个周期的时间。q就是高电平时间相对于整个周期时间的比例),占空比决定了PWM等效出的模拟电压的大小。一般用百分比表示。

分辨率:占空比的变化步距。分辨率就是占空比变化的精细程度,比如占空比变化为1%、1.1%、1,2%、1.3%这样子,那分辨率就是0.1%。

2.3 PWM波形

接下来我们就来分析一下定时器的输出比较模块是怎么来输出PWM波形的。下图红圈位置就是通用定时器的输出比较部分电路,左边就是CNT计数器和CCR1比较的结果,然后经过红圈位置的输出比较电路,最后通过TIMx_CH1输出到GPIO引脚上。然后下面还有三个同样的单元,分别输出到TIMx_CH2、TIMx_CH3以及TIMx_CH4。

在这里插入图片描述

那我们重点来看一下输出比较部分电路,如下所示就是通用定时器的输出比较部分电路。

在这里插入图片描述

如上图所示,左边是CNT计数器和CCR1第一路的捕获/比较寄存器,它俩进行比较。当CNT = CCR1或者CNT > CCR1时,就会给这个输出模式控制器传递一个信号,然后输出模式控制器就会改变它输出oc1REF的高低电平。接着这个REF信号可以前往主模式控制器(你可以把这个REF映射到主模式的TRGO输出上去),不过REF的主要去向还是下面这一路,通过下面这一路到达极性选择。给这个极性选择寄存器写0,信号就会往上走,就是信号电平不翻转,进来是什么样,出去还是什么样。写1的话,信号就会往下走,就是信号通过一个非门取反,那输出的信号就是输入信号高低电平反转的信号,这就是极性选择,就是选择是不是要把高低电平反转一下。那接着就是输出使能电路了,选择要不要输出。最后就是OC1引脚,这个引脚就是CH1通道的引脚,在引脚定义表里就可以知道具体是哪个GPIO口了。

接下来我们还需要看一下这个输出模式控制器,它具体是怎么工作的呢?什么时候给REF高电平,什么时候给低电平呢?我们来看一下下面这个表,这就是输出比较的8种模式,也就是这个输出模式控制器里面的执行逻辑。

在这里插入图片描述

这个模式控制器的输入是CNT和CCR的大小关系,输出是REF的高低电平,里面可以选择多种模式来更加灵活地控制REF输出。这个模块可以通过寄存器来配置。这个有效电平和无效电平为了方便理解可以直接认为有效电平就是高电平,无效电平是低电平。一般我们使用比较多的是PWM1模式、向上计数。

2.4 PWM基本结构

以PWM模式1、向上计数模式为例,PWM波形产生原理(输出PWM的基本结构)如下图所示

在这里插入图片描述
如图右上角所示,假如ARR的值为99,CCR为30。CNT计数器从0开始自增,当CNT < CCR时,REF置有效电平,当CNT >= CCR时,REF置无效电平,当CNT自增至99然后清零又开始下一个周期。下面对应的绿色线就是实际的REF输出的电平信号,可以看到REF的输出电平信号占空比是受到CCR值影响的。如果CCR设置大一些,输出的占空比就大一点,反之就小一点,这就是PWM模式的工作流程。这里的REF就是一个频率可调,占空比也可调的PWM波形,再经过极性选择,输出使能,最终通向GPIO口,这样就能完成PWM波形的输出了。

那接下来,我们就来看一下PWM的参数是如何计算的吧。

2.5 PWM参数计算

在这里插入图片描述

其中,假设CCR为30,ARR为99。

  • PWM频率: 即计数器的更新频率 Freq = CK_PSC / (PSC + 1) / (ARR + 1)
  • PWM占空比: Duty = CCR / (ARR + 1)
  • PWM分辨率: Reso = 1 / (ARR + 1)

三、舵机简介

3.1 舵机的工作原理

舵机是一种根据输入PWM信号占空比来控制输出角度的装置。它有三根输入线,其中两根是电源线,一根是PWM信号输入线。白色输出轴会固定在一个指定的角度不动,固定的位置是由信号线的PWM信号来决定的,这就是舵机的工作方式。

在这里插入图片描述

从上边右图中可以看出,舵机其实并不是一种单独的电机,可以发现它是由一个直流电机、一个减速齿轮组、一个电位器(电压编码器)和一个控制板组成的整体。舵机并不是一种单独的电机,它的内部是由直流电机驱动的,内部的控制电路板是一个电机的控制系统,整个舵机内部形成了一个闭环的控制系统。

大概得执行逻辑是,PWM信号输入到控制板,给控制板一个指定的目标角度,然后这个电位器检测输出轴的当前角度,如果大于目标角度,电机就会反转,如果小于目标角度,电机就会正转,最终使输出轴固定在指定的角度,这就是舵机的内部工作流程。

简而言之:输入一个PWM波形,输出轴固定在一个角度。

3.2 输入PWM信号的要求

舵机对输入的PWM信号的要求如下:周期为20ms(对应频率为50Hz),高电平宽度为0.5 ~ 2.5ms(占空比取值范围,对应的输出角度如下所示)。那如何理解在STM32中周期为20ms对应的频率就是50Hz呢?

首先需要明确‌PWM(‌脉冲宽度调制)‌的频率是指1秒钟内信号从高电平到低电平再回到高电平的次数‌。‌换句话说,‌频率表示的是单位时间内PWM周期的重复次数。‌因此,‌如果PWM的周期为20ms,‌那么在一秒钟(‌1000ms)‌内,‌这样的周期会重复出现50次,‌即频率为50Hz。‌这是因为1秒除以每个周期的时间(‌20ms)‌等于50,‌所以周期为20ms的PWM信号对应的频率就是50Hz。‌频率的计算公式为:f = 1 / Ts(其中Ts单位为秒)

在这里插入图片描述

3.3 硬件电路

在这里插入图片描述

上图所示是舵机的引脚定义图,在舵机上有三根线,分别是黑(电源负极GND)、红(电源正极+5V)、黄(PWM信号线)。

在这里插入图片描述

如上所示为舵机电路图,在实际应用中,GND就接GND,电源+5V是电机的驱动电源(一般电机都是大功率设备,驱动电源也必须是大功率的输出设备,我们可以直接从STLINK的5v输出脚引一根线使用USB的5V供电),信号线PWM就直接接到STM32任意一个GPIO引脚上就行了,PWM只是一个通信线,是不需要大功率的。

四、直流电机及驱动简介

4.1 直流电机

在这里插入图片描述

上图所示的电机是130直流电机,直流电机是一种将电能转换为机械能的装置。它有两个电极,当电极正接时,电机正转,当电极反接时,电机反转。(注意:直流电机是一个单独的电机,里面是没有驱动电路的,所以我们就要外挂一个驱动电路来控制。直流电机属于大功率器件,GPIO口无法直接驱动,需要配合电机驱动电路来操作,本次我们将使用TB6612电机驱动芯片来驱动电机

4.2 TB6612电机驱动芯片

在这里插入图片描述
TB6612是一款双路H桥型的直流电机驱动芯片,其中有两个驱动电路,可以独立地驱动两个直流电机并且控制其转速和方向。如上左图,是电机驱动板,芯片是TB6612,外围电路只需三个滤波电容就行了。如上右图是H桥电路的基本结构,是由两路推挽电路组成的。比如左边上管导通,下管断开,那左边输出就是接在VM的电机电源正极。下管导通,上管断开,那就是接在PGND的电源负极。如果有两路推挽电路,中间接一个电机,左上和右下导通,电流就是从左流向右,右上和左下导通,电流的方向就反过来从右边流向左边,H桥可以控制电流流过的方向,所以它能控制电机的正反转。

TB6612电机驱动模块的连接电路图和引脚定义图如下所示:

在这里插入图片描述

  • VM就是电机电源的正极。和舵机的电源要求是一样的,要接一个可以输出大电流的电源,电压和电机的额定电压保持一致,比如是5v的电机就接5v电压。
  • VCC是逻辑电平输入端,一般和控制器的电源保持一致。比如使用STM32,是3.3v的器件,就接3.3v。
  • GND直接接系统的负极就行。
  • AO1、AO2、BO1、BO2是两路电机的输出,可以分别接两个电机。AO1和AO2就是A路的两个输出,它的控制端是上面的三个PWMA、AIN1和AIN2。这三个引脚控制下面的A路电机,对应关系如上图的灰色填充,其中PWMA引脚要接PWM信号输出端,AIN1和AIN2引脚可以任意接两个普通的GPIO口。这三个引脚给一个低功率的控制信号,驱动电路就会从VM汲取电流来输出到电机,这样就能完成低功率的控制信号控制大功率设备的目的。同理,右边的BO1及BO2也是一样的道理。
  • STBY引脚意为StandBy,为待机控制引脚。如果接GND,芯片就不工作,处于待机状态。如果接到逻辑高电平VCC(3.3V)芯片就正常工作。如果不需要待机模式的话可以直接接VCC 3.3v,如果需要控制可以接入任意一个GPIO口,给高低电平就可以进行控制。

我们以A路驱动电路为例,那PWMA、AIN1、AIN2这三个引脚是怎么控制正反转和速度的呢?我们先来看一下下面这个表。

在这里插入图片描述

在这里,如果IN1和IN2都接高电平,两个输出O1、O2就都为低电平。这样两个输出没有电压差,电机是不会转的。如果IN1和IN2都接低电平,输出直接关闭,这样电机也是不会转的。

假如说IN1给低电平,IN2给高电平,那转还是不转就取决于PWM了。如果PWM给高电平,那输出就是一低一高,这时候电机反转。如果PWM给低电平,那两个输出都是电平,电机就不转了。

总结一下就是,IN1给低、IN2给高。PWM高转低不转。如果PWM是一个不断翻转的电平信号,那电机不就是快速地反转、停止、反转、停止了吗?如果PWM频率足够快,那电机就可以持续稳定地反转了,并且速度取决于PWM信号的占空比,这就是反转的工作流程。这里讲的PWM就是我们之前讲过的使用PWM来等效一个模拟量的功能了。正转的道理也是一样的,这里就不再累述了。

相关文章:

TIM输出比较

文章目录 前言一、TIM输出比较简介二、PWM简介2.1 PWM基本概念2.2 PWM参数2.3 PWM波形2.4 PWM基本结构2.5 PWM参数计算 三、舵机简介3.1 舵机的工作原理3.2 输入PWM信号的要求3.3 硬件电路 四、直流电机及驱动简介4.1 直流电机4.2 TB6612电机驱动芯片 前言 提示&#xff1a;本…...

JNPF 5.0升级钜惠,感恩回馈永远在路上

尊敬的JNPF用户们&#xff1a; 经过引迈团队数月的辛勤努力和不断的技术创新&#xff0c;JNPF快速开发平台迎来全新升级——5.0版本&#xff01;此次5.0版本的迭代革新&#xff0c;不仅代表着我们技术实力的进一步提升&#xff0c;是我们对用户需求的深度理解和积极回应。为了…...

三维平面电磁铁、交流电磁铁、显微镜磁场北京大学方案

根据用户北京大学需求设计制造方案如下 三维平面电磁铁产品规格 5MPS63-25型三维平面电磁铁&#xff0c;X、Y方向磁场由2对正交的磁极产生&#xff0c;Z轴由一组同轴线圈产生&#xff1b; 每轴对应的两个线圈正接产生均匀磁场&#xff0c;反接产生梯度磁场&#xff1b; …...

awk引号转义问题

这是我在终端运行的脚本&#xff1a; for ib1 in $(seq 0 999);do ibstr$(printf sample52-%d $ib1);calculate_rmsd --reorder Motif52.pdb ${ibstr}.pdb | awk "{printf "%d %8f\n", $ib1, $0}" >> sample52_hotspots; done 但是报错&#xff1a; …...

C语言典型例题46

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 题目&#xff1a; 习题3.6 企业发放的奖金根据利润提成。利润I低于或等于100 000元的&#xff0c;奖金可提成10%&#xff1b; 利润高于100 000元&#xff0c;低于200000元&…...

【目标检测】AGMF-Net:遥感目标检测的无注意力全局多尺度融合网络

《Attention-Free Global Multiscale Fusion Network for Remote Sensing Object Detection》 遥感目标检测的无注意力全局多尺度融合网络 原文&#xff1a;https://ieeexplore.ieee.org/document/10371366 摘要 遥感目标检测&#xff08;RSOD&#xff09;在复杂背景和小目标…...

2007-2022年上市公司资源节约数据

2007-2022年上市公司资源节约数据 1、时间&#xff1a;2007-2022年 2、来源&#xff1a;上市公司年报、社会责任报告、上市公司网站信息 3、指标&#xff1a;水资源节约、电力节约、原煤节约、天然气节约、汽油节约、柴油节约、集中供热节约、折算成统一标准煤共计节约 4、…...

onlyoffice连接器(connector)开发使用精讲 二次开发 深入开发【一】

连接器是onlyoffice调用web api的一个基础工具&#xff0c;可以方便开发者或者用户与业务系统结合使用web功能。 关于connector官方说明文档在这里&#xff1a;Automation API - ONLYOFFICE Api Documentation 注意&#xff1a;该功能针对开发者版、企业版&#xff0c;社区版常…...

VAuditDemo安装漏洞

目录 VAuditDemo安装漏洞 index.php header.php config.php lib.php install.php 分析结果 漏洞利用 第一步&#xff1a;删除install.lock文件&#xff0c;访问 install.php 抓包 第二步&#xff1a;通过审计构造payload 第三步&#xff1a;修改抓包请求内容&#x…...

算法学习-2024.8.16

一、Tensorrt学习补充 TensorRT支持INT8和FP16的计算。深度学习网络在训练时&#xff0c;通常使用 32 位或 16 位数据。TensorRT则在网络的推理时选用不这么高的精度&#xff0c;达到加速推断的目的。 TensorRT对于网络结构进行了重构&#xff0c;把一些能够合并的运算合并在了…...

ansible环境搭建

任务背景 公司的服务器越来越多, 维护⼀些简单的事情都会变得很繁琐。⽤ shell脚本来管理少量服务器效率还⾏, 服务器多了之后, shell脚本⽆ 法实现⾼效率运维。这种情况下&#xff0c;我们需要引⼊⾃动化运维⼯具, 对 多台服务器实现⾼效运维。 任务要求 通过管理服务器能够…...

在线陪玩App小程序源码开发:技术挑战与解决方案

随着互联网技术的飞速发展和用户需求的多样化&#xff0c;在线陪玩App小程序逐渐在游戏娱乐领域占据了一席之地。这类小程序不仅为用户提供了丰富的娱乐体验&#xff0c;也为开发者带来了新的机遇。然而&#xff0c;在开发过程中&#xff0c;数据处理、性能优化、系统扩展性和安…...

iOS profiles文件过期如何更新

创建发布用的Certificates 首先进入到https://developer.apple.com/account页面选择【证书】进入【新建证书】页面 点击【新建证书】按钮&#xff1a; 根据需求选中对应的【证书类型】&#xff0c;我选的是【Apple Distribution】&#xff0c; 开发者证书选择【Apple Devel…...

C/C++|C++标准库 string 流之std::ostringstream 和 std::istringstream 流

我们在 sstream 头文件中定义了三个类型来支持内存IO(ostringstream\istringstream\stringstream)&#xff0c;这些类型可以向 string 写入数据&#xff0c;这里我们主要讲&#xff1a; std::ostringstream 和 std::istringstream( C Primer 中文版第五版) 以上的两个类型都继…...

Java-Redis

文章目录 基础基础内容使用场景/功能常见数据类型下载与安装可视化&#xff08;多个&#xff09;发布订阅功能事务两种持久化主从模式哨兵模式集群模式Cluster缓存淘汰过期删除缓存一致 Cache Aside缓存击穿缓存穿透缓存雪崩 实战内容配置文件配置Redis的BeanRedis为什么这么快…...

requests快速入门

1 安装requests库 如果你还没有安装requests库&#xff0c;可以通过pip安装&#xff1a; pip install requests 2 GET请求 GET请求通常用于从服务器请求数据。使用requests.get()函数可以发送GET请求。 2.1 基本使用 import requests url https://api.example.com/da…...

企业高性能web服务器——Nginx

# 企业高性能web服务器 1、Nginx 编译安装 1.1 编译安装 Nginx 这里下载nginx-1.24.0.tar.gz和nginx-1.26.1.tar.gz可以在官方网站上下载&#xff1a;https://nginx.org/en/download.html 示例&#xff1a;nginx-1.24.0.tar.gz #提前将编译安装出现问题的安装包下载好&…...

FreeSWITCH Java ESL Client Demo

1简介 在开启Java ESL Client编程之前&#xff0c;请先阅读《FreeSWITCH权威指南》学习什么是FreeSWITCH Event Socket。 Java连接FreeSWITCH的ESL可以采用两种模式&#xff1a;inbound和outbound。 Inbound模式&#xff1a;Java应用作为客户端主动连接到FreeSWITCH的内置TCP…...

手摸手系列之Linux下根据自己的jdk包构建docker镜像

项目在本地导出PDF文件正常&#xff0c;部署到Linux服务器docker容器中导出就报错&#xff0c;百撕不得姐&#xff0c;经查&#xff0c;docker依赖的openjdk版本是8u112版本&#xff0c;而我本地是8u421版本&#xff0c;那就升级jdk的小版本试试。 在docker的中央仓库[点我直达…...

tomcat相关

一、部署安装tomcat 在10和20上安装tomcat [root10 ~]# dnf install java-1.8.0-openjdk.x86_64 -y #安装java环境 [root10 ~]# tar zxf apache-tomcat-9.0.93.tar.gz -C /usr/local/ #安装并启动tomcat [root10 ~]# ln -s /usr/local/apache-tomcat-9.0.93/ /usr/local/tomcat…...

20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并启动

20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并启动 2024/8/21 15:22 viewproviewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ viewproviewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ ./build.sh lunch 3. rockchip_rk3588_evb7_…...

服务优雅上下线优雅停机

一、目的 服务发生线程锁住&#xff0c;需要下线服务时&#xff0c;保证请求中的接口不受影响&#xff0c;执行完后&#xff0c;再下线服务 二、步骤 *kill -15时执行改钩子函数 优雅停机 1.当线程锁住 2.运维那边监控到&#xff0c;然后进行kill -15 进程ID 3.代码这边监…...

什么是生信分析?深入探讨生物信息学的技术、方法与广泛应用

介绍 生物信息学分析&#xff0c;简称生信分析&#xff0c;是一个结合了生物学、计算机科学、信息学和统计学的多学科领域&#xff0c;旨在处理、分析和解释海量的生物数据。随着现代生物技术的发展&#xff0c;尤其是高通量测序&#xff08;Next-Generation Sequencing, NGS&…...

JavaScript判断数组是否包含某个值

目录&#xff1a; 1.for循环/while循环2.数组的some方法3.数组的filter方法4.array.indexOf5.array.findIndex6.array.includes7.array.find8.set中的has方法 1.for循环/while循环 for循环: function contains(arr, val) {for (var i 0; i < arr.length; i) {if (arr[i] …...

C# - 如何在Windows系统中通过C#添加新的PATH条目至系统和用户环境变量

编写系统环境变量-->系统变量-->path-->添加新的列 01:直接写 using Microsoft.Win32; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace updatesystempath01 {class Program{stati…...

Unity | Shader基础知识(第二十二集:两次渲染)

目录 一、前言 二、“渲染两次” 三、本次成品介绍 四、第一次渲染代码 五、第二次渲染代码 六、截止目前的所有代码 七、调整代码 八、总结 一、前言 之前一直讲的shader文件中&#xff0c;都只写了一次CG代码。 为了大家对这部分的整体理解&#xff0c;我们这次渲…...

鸿蒙Harmony实战开发:Arkts构造函数

构造函数 类声明可以包含用于初始化对象状态的构造函数。 构造函数定义如下&#xff1a; constructor ([parameters]) {// ... } typescript 如果未定义构造函数&#xff0c;则会自动创建具有空参数列表的默认构造函数&#xff0c;例如&#xff1a; class Point {x: numbe…...

@vueuse/core使用useColorMode实现主题颜色切换

useColorMode 是一个在前端开发中常用的自定义钩子&#xff08;Hook&#xff09;&#xff0c;尤其在需要支持深色模式和浅色模式切换的场景下。这个钩子可以根据用户的选择或系统设置动态调整页面样式。 一、安装和引入 npm install vueuse/core # 或者 yarn add vueuse/…...

生信分析入门:从基础知识到实践操作的全方位指南

随着生物学研究的数字化转型&#xff0c;生物信息学&#xff08;简称生信&#xff09;分析已经成为现代生命科学研究中的关键工具。对于刚开始接触生信分析的初学者来说&#xff0c;这个领域可能看起来复杂而陌生。然而&#xff0c;通过系统的学习和实践&#xff0c;生信分析可…...

【STM32 FreeRTOS】内存管理

除了FreeRTOS提供的动态内存管理方法&#xff0c;标准的C库也提供了函数malloc()和函数free()来实现动态的申请和释放内存。 为啥不用标准的C库自带的内存管理算法&#xff1f;因为标准C库的动态管理方法有如下缺点&#xff1a; 占用大量的代码空间&#xff0c;不适合用在资源…...

江门模板建站哪家好/广告投放收费标准

1. __attribute__ 机制 GNU C 的一大特色就是__attribute__ 机制。__attribute__ 可以设置函数属性&#xff08;Function Attribute &#xff09;、变量属性&#xff08;Variable Attribute &#xff09;和类型属性&#xff08;Type Attribute &#xff09;。 __attribute__ 书…...

网站内链建设不可忽视的地方/网络销售工作靠谱吗

在项目中经常会遇到lua判空的情形 local a {} if a thenprint(true) end得到的结果 这样的结果就是a {}永远返回false&#xff0c;是一个逻辑错误。因为这里比较的是table a和一个匿名table的内存地址 我后面采用的方法是遍历table&#xff0c;用返回的元素个数来判断表是…...

与网站建设有关的招标文件/什么软件可以优化关键词

老早就想注册发稿&#xff0c;无奈自己文字功底差&#xff0c;不善写作&#xff0c;最后都不了了之。以前总是拿工作忙来当借口&#xff0c;今年开始这个借口也站不住脚了&#xff0c;从这里学了很多东西&#xff0c;也该和大家分享&#xff0c;共同进步才是我的最终目标。 今年…...

网站做收录/免费推广链接

9340万墨西哥选民个人信息的132GB数据库&#xff0c;上周六终于撤下线。被安全研究员克里斯维克利发现以来&#xff0c;该数据库已在网上挂了8天。但更糟的是&#xff0c;其实从2015年9月开始&#xff0c;这个数据库就赤裸裸地摆在众人眼皮底下。 维克利是推出MacKeeper的科技公…...

wordpress qq登录评论/搜资源的搜索引擎

对于各位电脑用户来说&#xff0c;开关机以及重启电脑相信是每一个电脑使用者最自由的一个操作了。一般来说&#xff0c;只要我们想要开关机或者重启电脑都不会遇到什么阻碍。但是就是那么一部分人&#xff0c;他们在进行开关机以及重启的时候就会遇到电脑提示“您无权关闭和重…...

给自己做网站/百度认证平台

#include<stdio.h> #include<string.h> #include<stdlib.h>char *deleteCharacters(char *s2,char *s){int i,j0,numstrlen(s2);for(i0;i < num;i){if(s2[i]s[0]){//循环覆盖for(ji;j<num-1;j){s2[j]s2[j1];}i--;//存在连续的相同删除字符串需要返回多…...