stm32_中断讲解

概念

中断(Interrupt)是计算机系统中一个重要的概念,它允许计算机的处理器(CPU)暂停当前正在执行的任务,去处理一个更高优先级的事件或任务,然后再返回到原来的任务继续执行。这种机制使得计算机能够高效地处理多个并发任务,以及快速响应外部事件。

类型

  1. 硬件中断:由硬件设备产生,比如键盘输入、鼠标移动、网络数据到达等。硬件中断通常分为可屏蔽中断(Maskable Interrupt,MI)和非屏蔽中断(Non-Maskable Interrupt,NMI)。

  2. 软件中断:由软件程序主动发起,通常用于系统调用或者异常处理。

  3. 异常:这是处理器在执行指令时遇到的问题,比如除以零、访问非法内存地址等,这些情况会触发异常处理。

  4. 系统调用:在操作系统环境中,应用程序通过系统调用请求内核提供的服务。

 gpio限制

  1. EXTI线路数量

    • 每个STM32系列支持的EXTI线路数量是有限的。例如,STM32F1系列有19条EXTI线路,而STM32F4系列有23条EXTI线路。
    • 这些EXTI线路可以复用,连接到不同的GPIO引脚,但一旦一个EXTI线路被分配给一个特定的GPIO引脚,它就不能再分配给其他引脚。

 

STM32的每个EXTI线路都可以独立地连接到不同的GPIO引脚上。例如,EXTI线0可以连接到PA0、PB0、PC0等GPIO引脚中的任何一个。这种设计提供了很大的灵活性,允许开发者根据具体的应用需求来选择哪个GPIO引脚触发哪个EXTI线路。

然而,一旦一个EXTI线路被分配给一个特定的GPIO引脚,它就不能再分配给其他引脚。这意味着,如果你将EXTI线0配置为使用PA0引脚,那么在同一时刻,EXTI线0就不能再与PB0或PC0等引脚关联。每个EXTI线路在同一时间只能与一个GPIO引脚相关联。

STM32的中断可以来自多个来源:

  1. 内核中断:比如系统滴答定时器(SysTick)中断。
  2. 外部中断:通过外部中断/事件控制器(EXTI)管理,可以来自GPIO引脚的外部信号。
  3. 内部中断:由STM32内部外设(如ADC、USART、SPI等)产生的中断。

步骤:

  1. 配置中断源:根据需求配置对应的中断源,比如设置GPIO引脚为中断输入,或者配置ADC的转换完成中断。
  2. 配置NVIC:在STM32的固件库中,可以通过函数来配置NVIC,包括设置中断的优先级和使能中断。
  3. 编写中断服务例程:当中断发生时,STM32会跳转到对应的中断向量表中的地址去执行代码。你需要在这个地址定义一个中断服务例程来处理中断。
  4. 使能全局中断:在配置好中断之后,你需要在主程序中使能全局中断,使用__enable_irq()函数。

 

相关推荐

  1. stm32_中断讲解

    2024-04-03 05:44:04       15 阅读
  2. STM32 中断时间

    2024-04-03 05:44:04       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-03 05:44:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-03 05:44:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-03 05:44:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-03 05:44:04       18 阅读

热门阅读

  1. Android 14.0 解锁状态下禁止下拉状态栏功能实现

    2024-04-03 05:44:04       11 阅读
  2. Mybatis 中的 Executor

    2024-04-03 05:44:04       14 阅读
  3. 常见docker使用命令

    2024-04-03 05:44:04       13 阅读
  4. 软件设计原则:依赖倒置

    2024-04-03 05:44:04       14 阅读
  5. 【前端推荐】node.js有哪些命令

    2024-04-03 05:44:04       14 阅读
  6. 谈谈SSH整合--一起学习吧之系统架构

    2024-04-03 05:44:04       15 阅读
  7. C++11:非常完美的完美转发以及新的类功能

    2024-04-03 05:44:04       13 阅读
  8. 计算机网络-文件读写——沐雨先生

    2024-04-03 05:44:04       13 阅读
  9. docker 安装elasticsearch密码配置

    2024-04-03 05:44:04       13 阅读
  10. HTTP/2 牛逼在哪?(计算机网络)

    2024-04-03 05:44:04       15 阅读
  11. 【element】常用 El-Form 自定义表单校验规则实战

    2024-04-03 05:44:04       13 阅读