登录/注册

stm32f103中断程序

stm32f103中断程序

更多

以下是基于STM32F103的中断程序配置步骤及示例(以标准库为例):


STM32F103 中断配置步骤

  1. 配置外设时钟

    • 开启GPIO、外设(如EXTI、TIM等)及AFIO(若需重映射)的时钟。
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);
  2. 初始化GPIO/外设

    • 配置GPIO模式(如输入上拉、下拉等)。
      GPIO_InitTypeDef GPIO_InitStruct;
      GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;
      GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPD; // 输入下拉
      GPIO_Init(GPIOA, &GPIO_InitStruct);
  3. 配置中断源

    • 外部中断示例:配置EXTI线路及触发方式。
      GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); // PA0映射到EXTI0
      EXTI_InitTypeDef EXTI_InitStruct;
      EXTI_InitStruct.EXTI_Line = EXTI_Line0;
      EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;
      EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Falling; // 下降沿触发
      EXTI_InitStruct.EXTI_LineCmd = ENABLE;
      EXTI_Init(&EXTI_InitStruct);
  4. 配置NVIC(嵌套向量中断控制器)

    • 设置中断优先级分组(通常选Group2)及通道优先级。
      NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 2位抢占,2位子优先级
      NVIC_InitTypeDef NVIC_InitStruct;
      NVIC_InitStruct.NVIC_IRQChannel = EXTI0_IRQn; // EXTI0中断通道
      NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0; // 抢占优先级
      NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0; // 子优先级
      NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
      NVIC_Init(&NVIC_InitStruct);
  5. 编写中断服务函数(ISR)

    • stm32f10x_it.c中重写中断函数,或直接在代码中声明。
      void EXTI0_IRQHandler(void) {
      if (EXTI_GetITStatus(EXTI_Line0) != RESET) {
      // 处理中断(如翻转LED)
      GPIO_WriteBit(GPIOB, GPIO_Pin_5, !GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_5));
      EXTI_ClearITPendingBit(EXTI_Line0); // 必须清除中断标志!
      }
      }
  6. 启用全局中断

    • main()函数中确保开启全局中断(默认已开启,但某些场景需手动恢复)。

关键注意事项

  1. 中断函数名必须与启动文件一致(如EXTI0_IRQHandler)。
  2. 必须清除中断标志,否则会反复进入中断。
  3. 避免在ISR中执行耗时操作,建议设置标志位在主循环处理。
  4. 检查时钟使能:GPIO、AFIO、外设时钟缺一不可。

示例:PA0按键触发LED(PB5)翻转

完整代码示例:[GitHub Gist链接]()
(注:实际开发中需根据硬件修改GPIO引脚及初始化参数。)

如有具体外设(如定时器、USART)中断需求,可进一步提供代码框架!

STM32F103中断服务程序里设置断点没有停下来是什么原因引起的?

STM32F103程序,调试时在定时器中断服务程序

2024-04-07 08:02:31

ARM系列STM32F103芯片的解密方法

破解STM32F103芯片的方法

2023-09-19 09:03:40

STM32的外部中断

?因为 STM32F103 芯片每个 GPIO 端口均有 16 个管脚,因此把每个 端 口 的 16 个 IO 对 应 那 16 根 中 断 线

2023-02-10 14:53:48

STM32F103芯片FFT程序

STM32F103芯片使用DSP库进行FFT运算的资料与程序。

资料下载 米一样 2022-06-07 16:30:21

STM32F103中断串口通信USART

本文基于笔者之前的博客STM32F103串口通信USART小试牛刀,在此基础上,加上中断函数,并补充HAL函数实现。文章目录一、实验原理二、实验代码1.库函数2.HAL库函数三、实验结果四、总结五

资料下载 李辉 2022-01-14 10:39:40

stm32f103中断总结很详细

stm32f103中断总结很详细

资料下载 佚名 2021-11-24 17:06:02

基于STM32f103的FFT频率测试程序下载

基于STM32f103的FFT频率测试程序下载

资料下载 shyshyshy 2021-08-02 10:07:20

STM32F103 CAN模板程序

STM32F103 CAN模板程序

资料下载 luo 2020-11-09 11:08:07

STM32F103 GPIO内部电路图讲解

STM32F103 GPIO内部电路图讲解

2023-02-01 16:32:14

如何利用STM32F103中断来处理输入捕获的数据呢

输入捕获模式有哪些功能呢?如何利用STM32F103中断来处理输入捕获的数据呢?

2021-12-13 06:13:02

STM32F103中断系统优先级的设置步骤有哪些呢

STM32F103中断系统优先级的设置步骤有哪些呢?STM32F103每一个IO口都可以作为外部

2021-11-24 07:56:42

详解STM32F103的外部中断

STM32F103的外部中断是什么意思?使用STM32F103的外部中断

2021-11-16 09:31:38

STM32F103中断管理方法是什么

STM32F103的中断管理方法是什么?如何对STM32F103中断进行

2021-11-16 08:42:54

stm32中断响应时间

stm32中断响应时间,STM32F103的中断• CM3内核支持256

2021-08-05 07:10:10

stm32f030和stm32f103功能差异

stm32f030和stm32f103功能差异主要表现在哪?

2021-07-22 09:35:47

7天热门专题 换一换
相关标签