STM8之外部中断长按键识别相关内容

  STM8常用中断指令

  开总中断

  _asm(“rim”);

  禁止中断

  _asm(“sim”);

  进入停机模式

  _asm(“halt”);

  中断返回

  _asm(“iret”);

  等待中断

  _asm(“wfi”);

  软件中断

  _asm(“trap”);

  STM8S常用中断映射

STM8之外部中断长按键识别相关内容

  如使用中断函数时,可以通过在上图中查找相对应的中断向量号,而中断函数的名字可以自定义

STM8之外部中断长按键识别相关内容

STM8之外部中断长按键识别相关内容

  外部中断长按键识别相关配置

  ??STM8S为外部中断事件专门分配了五个中断向量:

  PortA 口的5个引脚:PA[6:2]

  PortB 口的8个引脚:PB[7:0]

  PortC 口的8个引脚:PC[7:0]

  PortD 口的7个引脚:PD[6:0]

  PortE口的8个引脚:PE[7:0]

 PD7是最高优先级的中断源(TLI);

  中断IO设置

   这里选用EXTI2(端口C外部中断)。那么需要将中断促发的IO(PC5)设置为上拉输入或中断上拉输入,悬浮输入的话很容易受干扰。

  /*PC5设置为上拉输入*/

  void Init_EXTI2_GPIO(void)

  {

  PC_DDR &= 0XDF;

  PC_CR1 &= 0XDF;

  PC_CR2 |= 0x20;

  }

  外部中断寄存器配置

  CPU CC寄存器中断位:

      I0不能直接写,只能通过开中断或关中断来写,上电默认是11;当用指令开中断时( _asm(“rim\n”);),为00;当发生中断时,由当前中断(ITC_SPRx)载入I[1:0],主要用于做中断优先级;退出中断自动清0;因此在写EXTI_CR1,需将ITC_SPRx配置成11,或加入禁中断指令 。

  EXTI_CR1:

  ??配置促发方式;

  测试代码

STM8之外部中断长按键识别相关内容

STM8之外部中断长按键识别相关内容

STM8之外部中断长按键识别相关内容

另参见不用外部中断长按键识别:不用外部中断识别长按键

技术专区

  • STM8之外部中断长按键识别相关内容
  • 将电弧检测集成到光伏逆变器设备解决方案
  • 自写系统调用调试应用程序过程
  • lcd驱动程序如何编写显示图片功能
  • 汇春科技:展示IoT、人工智能领域重大突破,强推手势识别!
  • STM8之外部中断长按键识别相关内容已关闭评论
    A+
发布日期:2019年07月14日  所属分类:物联网