单片机
返回首页

STM8的线中断和端口中断

2020-03-14 来源:eefocus

STM8L的中断,有两种模式,分别为Pin模式和Port模式,也就是所谓线中断和端口中断。

简而言之,线中断是指所有寄存器组的同一管脚Pin的中断都使用同一中断号,如,


void KEY2Init()

{

  PB_DDR_bit.DDR2 = 0;      //GPB->PIN2 设置端口PB->2的输入输出方向寄存器为输入方向 

  PB_CR1_bit.C12 = 1;       //GPB->PIN2 带上拉电阻输入

  PB_CR2_bit.C22 = 1;       //GPB->PIN2  使能外部中断

                            // 使用的是第二个端口作为中断 所以选择P2Is 

  EXTI_CR1_bit.P2IS = 2;    //10 tx端口bit2 外部中断线2为下降沿触发中断

  EXTI_CONF_bit.PBLIS = 0;  //设置PB[3:0]作为外部通用中断 PB端口 低4位

}


端口中断是指同一个或多个寄存器组的所有Pin的中断使用同一中断号。


void KEY3Init()

{

  PD_DDR_bit.DDR3 = 0;      //GPD->PIN3 设置端口PD->3输入方向

  PD_CR1_bit.C13 = 1;       //GPD->PIN3 带上拉电阻输入

  PD_CR2_bit.C23 = 1;       //GPD->PIN3  使能外部中断

  

  EXTI_CR3_bit.PDIS = 2;    //PortD端口 外部中断线2为下降沿触发中断

  EXTI_CONF_bit.PDLIS = 1;  //设置PD作为外部通用中断

}


举例而言,

所有Port A/B/C/D/E的Pin1的中断都是EXTI1,

Port B 和Port G的所有Pin的中断都是EXTIB/G

可以理解为线中断具体到那个引脚上,而端口中断具体到那个端口上。

一类端口(port)可以包含很多的引脚(pin)。


使用寄存器模式进行编写时,两者很像,其中区别在于(请仔细观察下面两行代码):


 1. EXTI_CR1_bit.P2IS = 2;    //10 tx端口bit2 外部中断线2为下降沿触发中断

 2. EXTI_CR3_bit.PDIS = 2;    //PortD端口 外部中断线2为下降沿触发中断

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 开关电源的基本组成及工作原理

  • 带有短路保护系统的5V直流稳压电源电路图

    相关电子头条文章