STM8L学习笔记:外部中断
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P5IS[1:0]
P4IS[1:0]
每个端口的 bit7
每个端口的 bit6
每个端口的 bit5
每个端口的 bit4
的外部中断触发方式 的外部中断触发方式 的外部中断触发方式 的外部中断触发方式
设置位。(当 CCR 寄存 设置位。(当 CCR 寄存 设置位。(当 CCR 寄存 设置位。(当 CCR 寄存
百度 ID:↓过路者↑
STM8L 学习笔记:外部中断
注:笔者学习的芯片型号为 STM8L151K4
线中断和端口中断
STM8L 的外部中断分为线中断和端口中断。 线中断:每个端口中 Pin 号相同的引脚共用一个中断资源,如 PA2、PB2、PC2、PD2(Px2)。因为这几个引脚在其 各自的端口中的 Pin 号都是 2,所以共用一个中断,共用的中断称之为中断线 2,同理,如果 Pin 号是 3,则是中断 线 3。公用中断的意思是这几个引脚触发的中断都会进入同一个中断处理函数,也就是中断线 2 的处理函数。在线 中断中,中断处理函数以中断线号区分。每一个中断线 n 都对应着一个中断线 n 处理函数。 端口中断:同一个端口号中的所有引脚共用一个中断资源,如 PA0、PA2、PA3、PA4(PAx)。其他也是和线中断类 似的。端口中断的处理函数的区别以端口区分,同一个端口的引脚触发中断都是进入同一个端口中断处理函数。
每个端口的 bit0
的外部中断触发方式 的外部中断触发方式 的外部中断触发方式 的外部中断触发方式
设置位。(当 CCR 寄存 器的 I1 和 I0 都被置 1 时 (level 3-- 软 件 优 先 级使能,CCR 寄存器
设置位。(当 CCR 寄存 器的 I1 和 I0 都被置 1 时 (level 3--软 件 优 先 级使能,CCR 寄存器
F[7:4] 要 使 能 位 端 口 E[7:4] 要 使 能 位 端 口 D[7:4] 要 使 能 位 端 口 B[7:4] 要 使 能 位 端 口
中断模式。
中断模式。
中断模式。
中断模式。
00:下降沿和低
00:下降沿和低
00:下降沿和低
00:下降沿和低
电平触发。
电平触发。
电平触发。
电平触发。
01:上升沿触发。 01:上升沿触发。 01:上升沿触发。 01:上升沿触发。
External interrupt control register 1 (EXTI_CR1)
地址偏移量:0x00 复位值:0x00
7
6
5
4
3
2
1
0
RW
RW
RW
RW
RW
RW
RW
RW
P3IS[1:0]
P2IS[1:0]
P1IS[1:0]
P0IS[1:0]
每个端口的 bit3
每个端口的 bit2
每个端口的 bit1
设置位。(当 CCR 寄存 器的 I1 和 I0 都被置 1 时 (level 3-- 软 件 优 先 级使能,CCR 寄存器
设置位。(当 CCR 寄存 器的 I1 和 I0 都被置 1 时 (level 3-- 软 件 优 先 级使能,CCR 寄存器
复位值两位都是 1), 复位值两位都是 1), 复位值两位都是 1), 复位值两位都是 1),
1:端 口 G 被使 用于外部 中断
百度 ID:↓过路者↑
端口
端口
端口
H[7:4] 外 H[3:0] 外 G[7:4] 外
部中断选 部中断选 部中断选
I1 和 I0 都 被 置 1 时 I1 和 I0 都 被 置 1 时 都 被 置 1 时 (level 3-- 都 被 置 1 时 (level 3--
(level 3-- 软 件 优 先 级 (level 3--软 件 优 先 级 软件优先级使能,CCR 软件优先级使能,CCR
使能,CCR 寄存器复 使能,CCR 寄存器复 寄存器复位值两位都 寄存器复位值两位都
部中断的触发方式。 部中断的触发方式。 部中断的触发方式。 部中断的触发方式。
00:下降沿和低
00:下降沿和低
00:下降沿和低
00:下降沿和低
电平触发。
电平触发。
电平触ห้องสมุดไป่ตู้。
电平触发。
01:上升沿触发。 01:上升沿触发。 01:上升沿触发。 01:上升沿触发。
10:下降沿触发。 10:下降沿触发。 10:下降沿触发。 10:下降沿触发。
需要注意的是,这些标志位要软件清零,并且清零是写 1 而不是写 0。
External interrupt status register 1 (EXTI_SR2)
地址偏移量:0x04
复位值:0x00
7
6
保留位
5
4
3
2
1
0
PHF
PGF
PFF
PEF
PBF
RC_W1 RC_W1 RC_W1 RC_W1 RC_W1 RC_W1
1:端 口 D[7:4] 用于端口 中断
2 PDLIS RW
端口 D[3:0] 外 部中断选 择。
0:端 口 D[3:0] 用于线中 断。 1:端口 D[3:0] 用 于端口中 断。
1 PBHIS RW
端口 B[7:4] 外 部中断选 择。
0:端 口 B[7:4] 用于线中 断。
1:端 口 B[7:4] 用于端口 中断
0:端 口 E[7:4] 用于线中 断。
1:端 口 E[7:4] 用于端口 中断
4 PELIS RW
端口 E[3:0] 外 部中断选 择。
0:端 口 E[3:0] 用于线中 断。 1:端口 E[3:0] 用 于端口中 断。
3 PDHIS RW
端口 D[7:4] 外 部中断选 择。
0:端 口 D[7:4] 用于线中 断。
RW
RW
RW
RW
RW
PFIS[1:0]
PEIS[1:0]
PDIS[1:0]
PBIS[1:0]
端口 F 的外部中
端口 E 的外部中 端口 D 的外部中断的 端口 B 的外部中断的
断 的 触 发 方 式 设 置 断 的 触 发 方 式 设 置 触发方式设置位。(当 触发方式设置位。(当
位。(当 CCR 寄存器的 位。(当 CCR 寄存器的 CCR 寄存器的 I1 和 I0 CCR 寄存器的 I1 和 I0
用于端口中断的寄存器,当某一端口发生中断时相应的位置 1。Bit 5:0
表示端口 H,G,F,E,D,B。
为 0 时没有发生中断。
为 1 时发生中断。
要注意的是,这些标志位要软件清零,并且清零是写 1 而不是写 0,
另外,端口 H、G 只存在于个别型号。
第4页共8页
百度 ID:↓过路者↑
External interrupt port select register (EXTI_CONF1)
10:下降沿触发。 10:下降沿触发。 10:下降沿触发。 10:下降沿触发。
11:上升沿和下
11:上升沿和下
11:上升沿和下 11:上升沿和下降沿
降沿触发。
降沿触发。
降沿触发。
触发。
External interrupt control register 4 (EXTI_CR4)
地址偏移量:0x0A 复位值:0x00
11:上升沿和下
11:上升沿和下
11:上升沿和下
11:上升沿和下
降沿触发。
降沿触发。
降沿触发。
降沿触发。
External interrupt control register 3 (EXTI_CR3)
地址偏移量:0x02
第2页共8页
复位值:0x00
百度 ID:↓过路者↑
7
6
5
4
3
2
1
0
RW
RW
RW
RW
5 PGBS RW
4 PHHIS RW
3 PHLIS RW
2 PGHIS RW
1 PGLIS RW
0 PFHIS RW
第5页共8页
端口 H 或端口 D 选择。
0:端 口 D 被使 用于外部 中断。
1:端 口 H 被使 用于外部 中断
端口 G 或端口 B 选择。
0:端 口 B 被使 用于外部 中断。
地址偏移量:0x05
复位值:0x00
7
6
PFES
PFLIS
RW
RW
端口
端口
F 或 端 口 F[3:0] 外
E 中断 选 部中断选
择。
择。
0:端
0:端
口 E 被使 口 F[3:0]
用于外部 用于线中
中断。 断。
1:端
1:端
口 F 被使 口 F[3:0]
用于外部 用于端口
中断
中断。
5 PEHIS RW
端口 E[7:4] 外 部中断选 择。
第3页共8页
百度 ID:↓过路者↑
此寄存器和 EXTI_CR3 类似,并且控制的 Port H 和 Port G 只在个别型号里才有的,不做叙述。
External interrupt status register 1 (EXTI_SR1)
地址偏移量:0x03
复位值:0x00
7
6
5
4
3
2
1
0
P7F
0 PBLIS RW
端口 B[3:0] 外 部中断选 择。
0:端 口 B[3:0] 用于线中 断。 1:端口 B[3:0] 用 于端口中 断。
External interrupt port select register (EXTI_CONF2)
地址偏移量:0x0B
复位值:0x00
7
6
保留
PHDS
RW
器的 I1 和 I0 都被置 1 器的 I1 和 I0 都被置 1 器的 I1 和 I0 都被置 1 器的 I1 和 I0 都被置 1
时 (level 3-- 软 件 优 先 时 (level 3--软 件 优 先 时 (level 3-- 软 件 优 先 时 (level 3-- 软 件 优 先
级使能,CCR 寄存器 级使能,CCR 寄存器 级使能,CCR 寄存器 级使能,CCR 寄存器
位值两位都是 1),这 位值两位都是 1),这 是 1),这些位只能被 是 1),这些位只能被
些位只能被写)。
些位只能被写)
写)
写)
需要注意的是,
需要注意的是,
需要注意的是,
需要注意的是,
在 Port F[3:0] 与 Port 在 Port E[3:0] 与 Port 在 Port D[3:0] 与 Port 在 Port B[3:0] 与 Port
复位值两位都是 1), 复位值两位都是 1), 复位值两位都是 1), 复位值两位都是 1),
这些位只能被写)
这些位只能被写)
这些位只能被写)
这些位只能被写)
这些位配置端口
这些位配置端口
这些位配置端口
这些位配置端口
A,B,C,D,E 的 bit7 的外 A,B,C,D,E 的 bit6 的外 A,B,C,D,E 的 bit5 的外 A,B,C,D,E 的 bit4 的外
这些位只能被写)
这些位只能被写)
这些位只能被写)
这些位只能被写)
这些位配置端口
这些位配置端口
这些位配置端口
这些位配置端口
A,B,C,D,E 的 bit3 的外 A,B,C,D,E 的 bit2 的外 A,B,C,D,E 的 bit1 的外 A,B,C,D,E 的 bit0 的外 部中断的触发方式。 部中断的触发方式。 部中断的触发方式。 部中断的触发方式。
P6F
P5F
P4F
P3F
P2F
P1F
P0F
RC_W1 RC_W1 RC_W1 RC_W1 RC_W1 RC_W1 RC_W1 RC_W1
用于线中断的寄存器,当某一线路发生中断对应位置 1。bit 7:0 表示端口 A/B/C/D/E/F 中的
Pin0-Pin7。
为 0 时没有发生中断。
为 1 时发生中断。
11:上升沿和下
11:上升沿和下
11:上升沿和下
降沿触发。
降沿触发。
降沿触发。
降沿触发。
External interrupt control register 2 (EXTI_CR2)
地址偏移量:0x01 复位值:0x00
7
6
5
4
3
2
1
0
RW
RW
RW
RW
RW
RW
RW
RW
P7IS[1:0]
P6IS[1:0]
第1页共8页
百度 ID:↓过路者↑
00:下降沿和低
00:下降沿和低
00:下降沿和低
00:下降沿和低
电平触发。
电平触发。
电平触发。
电平触发。
01:上升沿触发。
01:上升沿触发。
01:上升沿触发。
01:上升沿触发。
10:下降沿触发。
10:下降沿触发。
10:下降沿触发。
10:下降沿触发。
11:上升沿和下
相关寄存器
与外部中断相关的主要的寄存器有:EXTI_CR1、EXTI_CR2、EXTI_CR3、EXTI_CR4、EXTI_SR1、EXTI_SR2、EXTI_CONF1、 EXTI_CONF2。
其中,EXTI_CR1、EXTI_CR2 用于配置线中断时引脚的中断触发方式。XTI_CR3、EXTI_CR4 用于配置端口中断时引 脚的中断触发方式。EXTI_SR1 用于线中断的中断标志位,EXTI_SR2 用于端口中断的中断标志位,所以,EXTI_SR1 只 能表示某个 bit 位而无法表示端口,而 EXTI_SR2 只能表示端口无法表示具体的 bit 位。EXTI_CONF1、EXTI_CONF2 是 配置每个端口的高低四个位是线中断还是端口中断。