STM8的线中断和端口中断

发布者:天涯拾遗最新更新时间:2020-03-14 来源: eefocus关键字:STM8  线中断  端口中断 手机看文章 扫描二维码
随时随地手机看文章

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为下降沿触发中断

关键字:STM8  线中断  端口中断 引用地址:STM8的线中断和端口中断

上一篇:关于使用IAR软件stlink下载stm8程序失败问题
下一篇:IAR STM8 中断函数

推荐阅读最新更新时间:2024-11-12 20:50

IAR+STM8——PWM
开发板上的LED1接在了PD3上,而PD3复用功能是TIM2_CC2,正好可以用来测试PWM功能。当然板上的另外2个LED也可以用,LED2对应PD2/TIM3_CC1,LED3对应PD0/TIM3_CC2。本例程通过电位器来调整LED1的亮度。 #i nclude iostm8s207sb.h void CLK_init(void) { CLK_CKDIVR = 0x08; // 16M内部RC经2分频后系统时钟为8M } void GPIO_init(void) { PD_DDR = 0x08; // 配置PD端口的方向寄存器PD3输出 PD_CR1 = 0x08; // 设置PD3为推挽输出 } void TIM2_i
[单片机]
STM8单片机ADC应用(IAR)
STM8片上集成了10位逐次比较型模数转换器,在开发板上有个电位器接到了AIN3,但没有可以显示数据的LED数码管或LCD液晶显示屏,怎么办呢?可以把AD采集数据通过UART发送到电脑上显示。 #i nclude iostm8s207sb.h void CLK_init(void) { CLK_CKDIVR = 0x08; // 16M内部RC经2分频后系统时钟为8M } void GPIO_init(void) { PD_DDR = 0x08; // 配置PD端口的方向寄存器PD3输出 PD_CR1 = 0x08; // 设置PD3为推挽输出 P
[单片机]
STM8 定义大数组 报错 #error clnk Debug\demo.lkf
今天再编写STM8的时候发现定义大数组编译无法通过,通过网上查询终于编译通过了,再次方便自己记录,写得有问题或者不好的不好请指教。 1.错误示例: 2.打开对话框 3.修改project settings - C Compiler - General - Memory Models :选择Long Stack ; 4.重新编译通过
[单片机]
<font color='red'>STM8</font> 定义大数组 报错 #error clnk Debug\demo.lkf
STM8学习笔记---定时器输出7路PWM波
STM8S003F3P6单片机共有三个定时器定时器1、定时器2、定时器4。其中定时器1为16位高级定时器,定时器2为16位通用定时器,定时器4为8位基本定时器。定时器1和定时器2可以输出PWM波。其中定时器1有4个通道,定时器2有3个通道。 现在让定时器1和定时器2所有通道同时输出PWM波。 首先初始化定时器IO口 通过最小系统图可以看出定时器通道对应的IO口为: TIM1_CH1– PC6, TIM1_CH2– PC7, TIM1_CH3– PC3, TIM1_CH4– PC4, TIM2_CH1– PC5, TIM2_CH2– PD3, TIM2_CH3– PA3, 将定时器对应的IO口都设置为推挽输出模式。因为要
[单片机]
<font color='red'>STM8</font>学习笔记---定时器输出7路PWM波
STM8 串口接收字符串问题
此处附上接收中断源码 #ifdef _RAISONANCE_ void USART_RX_IRQHandler(void) interrupt 28 #endif uint8_t cnt_USART ; #ifdef _IAR_SYSTEMS_ #pragma vector=30 __interrupt void USART_RX_IRQHandler(void) #endif { /* In order to detect unexpected events during development, it is recommended to set a breakpoint on the following instruc
[单片机]
STM8——IAR使用STLINK V2烧写程序
使用IAR编译环境烧写STM8程序,使用方法如下: STLINK V2硬件:STLINK V2 STLINK V2驱动:见云盘文件(链接:http://pan.baidu.com/s/1hr7CwUK 密码:w2vr) IAR编译环境烧写TM8程序过程:见云盘文档(链接:http://pan.baidu.com/s/1hr7CwUK 密码:w2vr)
[单片机]
stm8 调试硬件I2C心得
这次调试stm8的硬件真是艰辛,没有想到这样恼火!整整搞啦 我5天的时间,参考网上很多例子和风驰的stm8讲解!和自己的实践,终于搞通啦!特将自己在调试过程中一些心得希望的大家分享。由于本人水平有限也希望大家指出不足和错误的地方! Stm8不需要专门配置GPIO口,执行初始化就可以啦!有些stm8需要打开EEPROM设置I2C(看官方文档)。 Stm8主要靠SR1和SR3状态寄存器判断I2C的情况(while(!XXXXX)就是出自这里),多半大家调不通!就是卡在这里(需要注意的是 寄存器有些位,只要读寄存器就可以清除,在仿真的时候,最好不要打开寄存器页面)。这里分软故障和硬故障: 首先是硬故障: 一般是stm8芯片I
[单片机]
STM8_GPIO 推挽输出
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 实验平台: ST 官方三合一套件 + 硬件 : STM8S105S6T6C + 开发平台: IAR For STM8 1.10 + 仿真器 : ST-Link ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ #include stm8s.h /******************************************************
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved