单片机学习笔记---中断系统(含外部中断)

目录

中断介绍

中断优先级

中断嵌套

中断技术的优点

中断的结构

中断请求源

中断优先级

5个基本中断内部的结构

INT0和INT1

T0和T1

串口

中断寄存器

IE

TCON

中断优先级列表

中断号

中断响应的条件

代码编写实例分析

外部中断硬件电路分析


这一节我们主要是介绍中断系统,为什么要单独介绍中断系统?因为对于51单片机来说,那个中断的外设还是比较多的,像定时器、串口以及外部中断都比较多,所以我们先从全局来了解这个中断。

中断介绍

下面我们来了解一下中断,中断它是为了使这个单片机具有对外部或者内部随机发生的事件能够实时响应处理而设置的,所以中断功能的存在,很大程度上提高了单片机处理外部或者是内部事件的能力,所以中断它是非常重要的,它可以让单片机能够实时处理一些突发事件,比如说我们正常情况下在执行功能的时候,突然有紧急的事情需要处理,就可以利用这个中断来进行处理。处理完成这些突发事件之后,再回到之前的位置继续往下执行。

我们先来用生活当中的例子来给大家讲解中断的过程,这张图我们可以看一下生活中的实例。

比如,你在打开火烧一壶水,然后就去洗衣服,在洗衣服的过程当中,突然听到这个水壶发出了水开的报警声音,这个时候水壶正在开了,爆发出报警声音,这个时候你就要停止洗衣服的这个动作了,如果说你再继续往下洗衣服,那可能就会导致水壶烧干而引引发的一些火灾这些非常危险的一些事件,所以这个水开报警事件就相当于非常紧急突发的事件,那这个时候我们就要立刻停止手上的工作,停止洗衣服的这个动作,然后,转去什么去关火,完火之后,然后将开水灌入到暖水瓶当中,执行完成这个动作之后,又回到我们刚才洗衣服的地方,继续去洗你的衣服,这个过程我们就称为中断。

中断概念对于单片机来讲,它其实也是一样的,我们来看一下单片机手册上的官方介绍:

以下是中断程序的流程图:

这就是中断,那我们再来看一下这张图,也是中断的执行流程图,可以看一下。

首先主程序在往下执行,执行过程当中,突然有事件,突然发出了中断请求,在这个中断请求这里我们通常也称为断点。引起CPU去响应中断的这个中断源,就是引起CPU中断的这个根源,我们称为中断源,那比如说我们刚才举例的洗衣服,烧水那个生活当中的例子,水壶发出这个报警声,其实它就是中断源,因为是它引起我们CPU来中断,要执行一些中断的程序。 CPU响应之后,它就会转去执行这个中断程序了,我们假设是事件B,执行中断程序完成之后回过头,它会返回到断点的这个位置,也就是刚才我们中断的这个位置,然后继续往下执行这个主程序,这个过程就是中断。

中断优先级

在单片机当中,中断系统一般是允许有多个中断源的,当几个中断源同时向CPU发出请求中断的时候,要求为它服务的时候,这就存在CPU优先响应哪一个中断请求的问题。

假设我们有两个中断,也就两个中断1、中断2,这两个中断同时过来,那CPU要执行哪个?

中断源有优先的级别,CPU是根据它的级别来判断优先执行哪一个中断,优先级别越高的就优先执行,越低的就最后执行,比如在中断事件1和中断事件2同时过来之后,假设它的优先级1的优先级要高,2的优先级要低,同时过来之后,那这个CPU要响应哪?当然是响应优先级高的这个事件1,执行完事件1之后再来执行低优先级的中断事件,那等这个事件执行完成,才会继续回到主程序往下执行,这也就是中断优先级的响应。

这个优先级怎么来判别?

通常在这个单片机当中,它都有对应的默认的优先级别,当然也可以通过对应的寄存器来修改的优先级,对于51单片机来说,通常我们不去修改的寄存器的值,而是通过默认的优先级别进行。

中断嵌套

当我们CPU正在处理中断请求的时候,发生了另优先级比它还高的中断源请求,这个时候,它就有中断嵌套的问题。

我们来说明一下,假设我们主程序在执行中断事件A,突然有个中断事件过来,那我们要响应这个中断事件B,在执行这个中断事件B的时候,突然又有中断的事件C,而C优先级比B的优先级还要高,那这个时候,它就在这个地方要暂停中断优先级B,要去转去执行优先级高的事件C,然后执行完成之后,再回到这个地方继续往下执行中断服务程序B,执行完了之后,再回到主程序来继续往下执行。

这叫做中断嵌套中断嵌套。

那对于51单片机来说,通常这种的很少,对于一些高端的,像STM32,或者是DSP之类的这种高级的一些单片机来说,那中断是更加的复杂,所以在这些单片机里面,通常都会存在一些中断嵌套,经常会遇到。

对于51大来说这种很少,基本上就是处理中断处理完又回到主程序来。

中断技术的优点

随着计算机技术的应用,人们发现了中断技术不仅解决了快速主机与慢速IO设备的数据传输问题,而且还有这些优点:

  1. 分时操作

CPU它可以分时为多个IO设备进行服务,提高了计算机的利用率,通过中断可以进行实现分时操作。比如说我们在使用定时器的时候,定时不同时间,并且执行不同的时间,这就可以进行分时操作。

  1. 实时响应

因为我们使用了中断,当我们事件过来之后,肯定要响应中断了,然后执行完中断之后,再回到我们主程序继续执行,这是个实时响应的功能。

  1. 可靠性高

CPU具有处理设备故障,以及掉电等突发事件的能力,可以让这个系统可靠性可以大大的提高。

在任何的一款单片机当中,中断基基本上是必不可少的,所以中断这一块大家一定要认真的去学习。

中断的结构

下面我们来看一下这个中断的结构。

中断请求源

我们知道STC89系列51单片机提供了8个中断的请求,请求8个

它们分别是外部中断就是INT0外部中断0),INT1(外部中断1INT3外部中断2,以及INT3外部中断3)。

另外还有定时器0定时器1还有定时器2以及串口。

这些中断总共是8个中断的请求源,这里是指STC一些增强型的一些单片机,它具备这些中断员,也就最多8个。

对于普通系列的51单片机来说,比如说8051系列的,STC89 C51/C52之类的,都具备共有就是8051内核的51单片机均有的5个中断源是INT0外部中断0),INT1(外部中断1和定时器0定时器1,以及串口这五个中

就是说只要是51单片机,这五个中断源是必不可少的,至于INT3T2(外部中断2),INT3(外部中断3)以及定时器2这些是根据你芯片的外设有没有增加,比如说STC90系列的,或者是一些更高级的,增强型的,它可能会增加几个资源,这些增加的资源的使用方法跟这些是完全一样的,所以我们这里重点是学习基本的这五个。

中断优先级顺序

所有的中断都具备4个中断优先级。 基本型只有2个(高级和低级)。用户可以用关总中断允许位EA这个控制寄存器,它能够控制我们的总中断或者是相应的中断允许屏蔽位,屏蔽我们所有中断请求。也可以用打开相应的中断,允许CPU响应相应的中断申请,其中,有些中断源是可以用软件独立的控制开中断或者是关中断的,每中断的优先级可以通过软件来设置。

高优先级的中断级可以打断低优先级的中断,反之低优先级的中断请求是不可以打断高优先级的中断,这个在前面我们也说了。 当两个相同优先级的中断同时产生的时候,它会通过查询次序来决定系统响应哪一个中断,因为在这些中断里面它固定会有顺序的,我们这里也列出来了。

它的优先级如上图中的箭头方向,从下到上优先级变高,这是固定的。

当然也可以通过寄存器来修改它的优先级,既然可以修改优先级,那肯定有可能会把这两个,比如说我们外部中断0和定时器0设置为相同的优先级,如果是相同的优先级同时发生,那我们CPU要响应哪一个?它会根据我们默认的这个顺序,比如说外部中断0它是最高,那就响应这个。这是优先级相同的情况下的响应顺序。

当然我们通常不会去操作优先级顺序的寄存器,我们会按照它默认的优先级的顺序来使用它。

5个基本中断内部的结构

下面,我们来具体看一下51单片机5个中断内部的结构。

INT0和INT1

首先我们来看一下这个INT0,INT0对应的是P32口这个附加功能,它可以通过TCON寄存器的IT0这一位来进行选择。

IT0在芯片手册上的解释:

如果是说将这个IT0这一位设置为0,就选择的是低电平触发,经过非门变成1。

如果是将IT0设置为1的话,它是选择下降沿触发,下降沿触发之后流入到我们的IE0(中断标志)。

IE0在芯片手册上的解释:

比如说我们外部有信号,那来了下降沿之后,那如果说我们配置了IT0=1,来了下降沿的话,它就会让这个IE01,这就是中断的标志,说明来了中断的事件。

来了中断事件,但它还不会连到我们的CPU,它要通过IE和IP以及后面的一系列操作联络到我们的CPU,所以IE这一块也要进行设置,IE是包括了对应的外部中断的一些寄存器的设置。比如,EX0是外部中断0的中断选择,如果是说我们要使能这个外部中断的话,那EX0就要为1,也就是这个开关要闭合。

这里的开关闭合上的话,那信号就可以过来,然后,紧接着是EA总中断,前面即使全部配置好,但这个中断不打开的话,那中断的信号也是流入不到我们的CPU的,所以这个总中断也要设置为1,设置为1的话,这个中断信号就可以流入到CPU了。

默认IP是用来设置中断优先级的,这里我们就不设置,默认它是以连到这个0,连到0的话,通过我们前面说的这个中断的默认的顺序表来进行响应哪一个先出发。它就会直接流入到我们的CPU,从而触发我们的中断。

同理,我们的外部中断1也是一样的。  

外部中断1是连接到P3.3引脚。

T0和T1

T0对应的是我们的P3.4口,T1对应的是P3.5口

我们这个定时器它是16位,后续的定时器/计数器部分我们会介绍,如果是我们使用的16位模式的话,计数到65536就会产生溢出(因为2的16次方等于65536,如果是从0开始计数,计数到65535,如果再往下计到65536就溢出)溢出的话就会有溢出的中断请求,TF0就是中断请求的标志,发出了溢出TF0就会自动置1,如果说我们开启了对应的中断,比如说ET0,和它后面的总中断开启了,然后,PT0这里也默认是已经连到了0,然后传入到我们的CPU,这样就会发出中断的请求,也就是定时器的溢出请求。

那同理我们的T1也是一样的。

串口

然后下面是串口RX和TX,有发送和接收两个引脚,对应P3.0和P3.1引脚的附加功能。

RX(接收数据) TX(发送数据)

RX对应到RI,是SCON上的位,TX对应的是TI。 RI和TI后面是一个或门,当这两个有为1,也就相当于有发送完成或者是接收完成标志之一的话,它会发出中断请求,如果说我们开启了串口的中断功能,并且把总中断给使能,它也会向CPU发送中断请求,或者是发送中断请求,或者是接收完成中断请求这么一个信号给我们的CPU。 当串口接收完一帧串行数据的时候,RI(接收完成中断请求的标志)和,发送完成一帧数据之后,TI(发送完成的标志)都会自动置1。

也就是说这一块它是我们单片机自动完成的。

前面是我们用来设置中断的请求的条件。

然后,后面的这一块也是我们要设置的中断的开关。

这里总中断是适用于我们所有的中断,只要把总中断打开,前面我们全部配置好之后才能传入到我们的CPU。

如果说你前面配置好之后总中断没有打开,依然是不能完成这个中断请求的,单片机不会进入到中断服务程序执行。

中断寄存器

下面我们来看一下中断相关的寄存器。

IE

我们分析这个中断结构的时候,这里就需要我们配置这个IE。

如果说你使用的是外部中断就要对EX0和EX1进行配置。

如果你使用定时器的话,那你要对这个ET0和ET1进行配置。

如果说你是使用串口,那你要对这个ES进行配置.

这些分别都是IE的这个寄存器的某位:

对应关系:

EA是外部的总中断,也就是CPU的中断允许位,我们也称之为总中断,当我们前面把外设的一些中断的条件选择好之后,最终我们还要开启这个总中断EA,如果EA不开启,你即使前面配置好,依然是不会产生中断,进入中断的触发程序的,所以,这一块一定要注意,我们在前面结构图当中也给大家分析了EA这一块的作用。

然后ES是对应到串行口的中断允许位,如果说我们要使用串行通讯,也就串口通信的话,要使用中断,那我们就要将这个ES置1,把它的使能开关给打开。

然后ET1和ET0对应到定时计数器,T0和T1的中断允许位。 如果说我们要使用这个定时计数的功能,那我们要对这个ET1和ET0进行选择,也就是它的使能开关要打开,它是个允许的开关。

EX1和EX0是外部中断0和外部中断1的允许位,我们要使用外部中断的话,我们也要把它的开关给使能。

TCON

那现在我们再看一下中断请求标志TCON。

中断请求标志这个TCON里面就是对触发方式还有定时器的一些方面的设置。

TCON是8位的寄存器,首先我们从低4位看起。

IT0是外部中断0的触发方式控制位,它这个值有0和1的选择,如果是0的话,那我们默认是设置为低电平触发方式。而我们将这个值设置为1的话,它是选择为下降沿触发方式,下降沿就是说从我们高电频变为低电频这时刻,它就会触发中断。  

通常我们使用外部中断的话,都是使用下降沿触发,也就将这个IT0或者IT1设置为1。 然后我们再来看一下IE0,它是外部中断的请求标志位,IE1也是中断请求标志位。这些中断标请求标志位是由单片机内部自动去完成。

比如,我们配置好外部中断的触发方式之后,假设IT0设置为下降沿触发,那外部来了一个下降沿脉冲到P3.2引脚,就会触发外部中断INT0发出中断请求,IE0它自动会设置为高电平。它是自动完成的,不需要我们人为的去设置,IE1也是同样的道理。

IT1跟IT0一样的。

然后就是TR0和TR1,它是定时器的初值的设置,这个在后面我们介绍这个定时器的时候会对这个TR0和TR1进行讲解。   

然后这里有个TF0和TF1,它是属于定时计数器T0和T1的溢出中断请求标志,它也是自动去完成的,当我们定时计数器计数满的时候并发生溢出的时候,这个请求标志它会自动置1,这个在前面我们其实已经分析过。

中断优先级列表

接下来我们再看一下后面的中断优先级。

前面我们说了同一个优先级的中断申请可能不止一个,这个时候就有中断优先级的排队的问题。比如说两个中断过来之后,优先执行哪一个,那就根据中断的优先级执行。

如果说你不通过寄存器修改中断优先级的话,默认它会按照图中的优先次序来排列。

中断号

然后在我们编写中断的时候,它有中断的中断号,在这张图当中也给大家列出来了。

这个中断号有什么作用?

这个中断号就是指引CPU执行程序的时候,定位到哪一个中断。

如果说我们外部中断0触发引起中断的话,那你中断号必须是0。如果你这里写1,那即使你前面程序都配置好,那它也不会进入到你这个写1的这个程序当中来的,这里一定要注意。

中断号一定要记住!中断号是绝对不能搞错,你搞错了,程序是进入不了你的中断服务程序的。

中断响应的条件

接着我们来看一下中断响应的条件。 主要有3个条件,只有同时满足才能触发中断。

1.首先只有发出了中断请求,CPU才会有可能响应,所以,这个中断请求必须得满足,就是说要有中断源产生。比如我们生活当中的例子,我们水开发出报警声,那它就产生中断请求。

2.那我们要去执行它,我们首先要满足将中断源相关的一些中断允许位打开,只有打开了中断请求才能过来,才能到我们CPU这里来。

3.最后就是CPU的开中断,也就是总中断要打开,前面你这个配置好了,你这个总中断不打开的话,一样是不能响应的,这一点要注意。

满足这三个条件,CPU就能产生中断,就触发中断响应执行。

代码编写实例分析

然后我们以外部中断0为例来介绍一下中断如何来使用。

根据前面说的这三个条件,首先我们要打开总中断。

当然打开总中断这个顺序都无所谓。

然后,我们选择它的EX0是用来开启外部中断的功能的允许位,我们要给允许外部中断进来。

然后,IT0是用来设置触发方式,如果我们设置为1的话,那是选择下降沿触发,也就是说外部来了下降沿,那我们就会触发这个中断。

进入中断的时候,我们有中断服务程序,中断服务程序这个函数跟我们普通的函数不一样,它增加了interrupt这个关键字。

这个关键字是51单片机特有的中断关键字,不能写错,写错了也是进入不了中断函数的。然后非常重要的一点就是这个中断号,中断号前面我们也说了,外部中断0是对应的是0。

然后后面的using 1这个可以不写,现在基本上不写这一块,可以把它给忽略掉.

中断函数通常都是没有返回值的,所以是void空类型。

当然中断函数里面也是没有入口参数的。

以上就是关于中断系统的相关介绍了,后面会继续讲到它的具体使用。

外部中断硬件电路分析

下面我们来介绍一下硬件。

其实外部中断是属于单片机内部的资源,所以,我们重点是介绍连接到外部中断的引脚的一些电路。

前面我们在介绍独立按键的时候说过,K3和K4是连接在P32和P33引脚。

而且P32和P33正好是我们连接的是外部中断INT0和INT1。

所以如果说我们对K3或者K4按键进行操作的时候,P32和P33就会收到对应的信号。

比如我们配置了外部中断0(使用的是P32引脚)下降沿的触发方式。默认独立按键是接了GND的,也就是低电平有效。并且默认P32有上拉电阻,所以P32默认是高电平。

那当按键K3按下的时候,那这个GND就输入到P32引脚了,所以按下的时候P32就是低电频。从高电平到低电平,它就有下降沿。

所以当我们配置为下降沿触发的时候,按键一按下,它就会触发外部中断,因此可以通过这个按键来模拟这个外部中断的触发的功能。 同理,K4也就是P33,它是属于外部中断1的功能,所以,我们也可以通过K4来编写外部中断1的触发的程序。

我们可以通过按键来触发这些外部中断的话,那我们要如何观察?

我们这里使用了指示灯,当我按键按下的时候触发外部中断,我就让对应的LED点亮。

LED模块我们前面好几节讲的挺多了,这里就不再赘述。

以上就是外部中断系统硬件电路的解释。

下节我们开始学习定时器!

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

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

相关文章

视频上传 - 断点续传那点事

在上一篇文章中,我们讲解了分片上传的实现方式。在讲解断点续传之前,我要把上篇文章中留下的问题讲解一下。读过上一篇文章的小伙伴们都知道,对于分片上传来说,它的传输方式分为2种,一种是按顺序传输,一种是…

GPT-1, GPT-2, GPT-3, GPT-3.5, GPT-4论文内容解读

目录 1 ChatGPT概述1.1 what is chatGPT1.2 How does ChatGPT work1.3 The applications of ChatGPT1.3 The limitations of ChatGPT 2 算法原理2.1 GPT-12.1.1 Unsupervised pre-training2.1.2 Supervised fine-tuning2.1.3 语料2.1.4 分析 2.2 GPT-22.3 GPT-32.4 InstructGPT…

【操作系统】MacOS虚拟内存统计指标

目录 命令及其结果 参数解读 有趣的实验 在 macOS 系统中,虚拟内存统计指标提供了对系统内存使用情况和虚拟内存操作的重要洞察。通过分析这些指标,我们可以更好地了解系统的性能状况和内存管理情况。 命令及其结果 >>> vm_stat Mach Virtu…

常见云计算服务模式( IaaS基础架构即服务、PaaS平台即服务、SaaS软件即服务)

常见云计算服务模式 ( IaaS基础架构即服务、PaaS平台即服务、SaaS软件即服务) 零、00时光宝盒 世界并不完美,面对很多事情我们都很无奈甚至悲哀,但生活总要继续下去,不止是为了自己。抱怨没有用,顾影自怜也…

51单片机之LED灯模块篇

御风以翔 破浪以飏 🎥个人主页 🔥个人专栏 目录 点亮一盏LED灯 LED的组成原理 LED的硬件模型 点亮一盏LED灯的程序设计 LED灯闪烁 LED流水灯 独立按键控制LED灯亮灭 独立按键的组成原理 独立按键的硬件模型 独立按键控制LED灯状态 按键的抖动 独立按键…

Python(SQLite)executescript用法

SQLite 数据库模块的游标对象还包含了一个 executescript() 方法,这不是一个标准的 API 方法,这意味着在其他数据库 API 模块中可能没有这个方法。但是这个方法却很实用,它可以执行一段 SQL 脚本。 例如,如下程序使用 executescr…

Android中的MVVM

演变 开发常用的框架包括MVC、MVP和本文的MVVM,三种框架都是为了分离ui界面和处理逻辑而出现的框架模式。mvp、mvvm都由mvc演化而来,他们不属于某种语言的框架,当存在ui页面和逻辑代码时,我们就可以使用这三种模式。 model和vie…

uniapp android和微信小程序实现PDF在线预览

在使用uniapp开发移动端时,微信开发者工具里webview能正常打开后端接口返回的pdf文件流。正式发布后,在配置了业务域名和服务器域名的前提下,预览pdf文件却只能看到白屏,因此我猜测微信小程序不能通过webview读取文件流。这个想法…

机器学习的整个流程

机器学习的整个流程定义了数据科学团队执行以创建和交付机器学习模型的工作流。此外,机器学习流程还定义了团队如何协作合作,以创建最有用的预测模型。 机器学习high level的流程 机器学习流程的关键步骤包括问题探索(Problem Exploration&a…

Django模板(三)

一、标签URL 返回与给定视图和可选参数相匹配的绝对路径引用(不含域名的 URL) {% url some-url-name v1 v2 %} 第一个参数是url模式名称,后面跟着的是参数,以空格分隔可以使用关键字: {% url some-url-name arg1=v1 arg2=v2 %}如果您想检索命名空间的URL,请指定完全限定…

探讨CSDN等级制度:博客等级、原力等级、创作者等级

个人名片: 🦁作者简介:学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:Vir2021GKBS 🐼本文由…

Ansible command命令模块 这个模块可以直接在远程主机上执行命令,并将结果返回本主机。

目录 参数介绍练习环境配置主机清单配置无密码链接ping模块 command 命令模块也可以用来安装点东西看个路径 command 指定目录来 指定命令 参数介绍 chdir    # 在执行命令之前,先切换到该目录 executable # 切换shell来执行命令,需要使用命令的绝对…

机器学习数学基础

机器学习基础 1、标量、向量、矩阵、张量2、概率函数、概率分布、概率密度、分布函数3、向量的线性相关性4、最大似然估计5、正态分布(高斯分布)6、向量的外积(叉积)7、向量的内积(点积)8、超平面(Hyperplane)9、广义线性模型(GLM)10、伯努利分布与二项分布11、凸函数…

Java基于微信小程序的驾校报名小程序,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

SERVLET过滤器

SERVLET过滤器 全球因特网用户使用不同类型的Web浏览器访问应用服务器上存储的Web应用程序。每个浏览器根据对应的Web浏览器窗口中的设置显示应用程序中的信息。Web应用程序可能会有一些客户机的Web浏览器不支持的HTML标记或功能。这种情况下,应用程序在客户机的Web浏览器中可…

notepad++成功安装后默认显示英文怎么设置中文界面?

前几天使用电脑华为管家清理电脑后,发现一直使用的notepad软件变回了英文界面,跟刚成功安装的时候一样,那么应该怎么设置为中文界面呢?具体操作如下: 1、打开notepad软件,点击菜单栏“Settings – Prefere…

探索C语言中的联合体与枚举:数据多面手的完美组合!

​ ✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C语言学习 贝蒂的主页:Betty‘s blog 1. 联合体的定义 联合体又叫共用体,它是一种特殊的数据类型&…

vue项目打包部署到flask等后端服务里面,实现前后端不分离部署,解决空白页面和刷新页面not fount问题

1. 编译模式一定要设置为esnext,否则会报错: Strict MIME type checking is enforced for module scripts per HTML spec.Expected a JavaScript module script but the server responded with a MIME type of "text/plain". 具体解释可以看vi…

机器学习中常用的性能度量—— ROC 和 AUC

什么是泛化能力? 通常我们用泛化能力来评判一个模型的好坏,通俗的说,泛化能力是指一个机器学期算法对新样本(即模型没有见过的样本)的举一反三的能力,也就是学以致用的能力。 举个例子,高三的…

删除和清空Hive外部表数据

外部表和内部表区别 未被external修饰的是内部表(managed table),被external修饰的为外部表(external table); 区别: 内部表数据由Hive自身管理,外部表数据由HDFS管理; …