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为下降沿触发中断
上一篇:关于使用IAR软件stlink下载stm8程序失败问题
下一篇:IAR STM8 中断函数
推荐阅读最新更新时间:2024-11-12 20:50
设计资源 培训 开发板 精华推荐
- RX-ELRS_RX915MHz/433MHz
- PCB拼装小飞机
- SG117A, 1.2V - 25V 可调稳压器的典型应用
- 小电视/喵喵机烧录器--ch340g版
- 使用 Analog Devices 的 LTC6263HMS 的参考设计
- SC1566 极低压差 3.0 安培稳压器的典型应用
- CWH-CTP-COP-YE: 面向CodeWarrior®TAP的Power Architecture®处理器( COP)调试器接头
- 使用 Microchip Technology 的 TC18C47MJE 的参考设计
- 高速 CAN 收发器应用笔记
- 使用 STMicroelectronics 的 R5975AD 的参考设计