【STM32】基于STM32F407的中断开关点灯 |
您所在的位置:网站首页 › stm32pwm中断设置 › 【STM32】基于STM32F407的中断开关点灯 |
目录
一、中断介绍1. 中断是什么2. 中断的作用3. 中断类型及优先级
二、中断方式点灯1. 新建工程2. 编写代码3. 烧录验证
三、总结四、参考
一、中断介绍
1. 中断是什么
中断通常被定义为一个事件,该事件能够改变处理器执行指令的顺序。这样的事件与 CPU 芯片内外部硬件电路产生的电信号相对应。 中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。 中断分为同步中断和异步中断: 同步中断:同步中断是当指令执行时由控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后 CPU 才会发出中断。 异步中断:异步中断是由其他硬件设备依照 CPU时钟信号随机产生的。 通常所说的中断指的是异步中断,我们将同步中断称为异常。(异常是由程序的错误产生的,或者是由内核必须处理的异常条件产生的) 2. 中断的作用跟据中断的定义,我们可以通过中断使处理器转而去优先运行正常控制流之外的代码。 当中断信号达到肘,CPU必须停止它当前正在做的事情,并且切换到一个另一个活动。为了做到这就要在内核态堆钱保存程序计数器的当前值 (寄存器的内容) ,并把与中断类型相关的地址放进程序计数量。 中断类型: 硬中断:通过处理器中断信号线产生的中断软中断:通过非法指令或特殊指令触发的中断中断优先级: 多个中断同时出现时,处理器先响应高优先级的中断低优先级中断的ISR执行时,可以被高优先级中断再次打断ISR比App Code拥有更高的执行优先级创建一个STM32F407的STM2CubeMX项目: 外设设置 设置指示灯LED引脚PF9,设置引脚模式为输出模式GPIO_Output。 设置按键引脚PF8,设置引脚为外部中断功能,PF8与外部中断线EXIT8连接GPIO_EXIT8 User Label处设置名字为 F8_EXTI 使能对应的外部中断线,点击Enabled 设置Project Manager后,生成代码: 打开工程,搜索HAL_GPIO_EXTI_Callback函数 该函数为外部中断回调函数,__weak表示此函数为虚函数,需要用户重写。 在main.c文件中找个地方重新写如下: void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){ if( GPIO_Pin == F8_EXTI_Pin)//判断外部中断源 { HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);//翻转LED状态 } }
![]() ![]() 本文通过了解中断的相关知识,基于STM32F407使用STM32CubeMX实现了开关接高电平时,LED亮灯;接低电平时,LED灭灯的点灯操作。 四、参考https://blog.csdn.net/qq_20233867/article/details/72236576 STM32 HAL库 CubeMx 按键中断控制LED https://blog.csdn.net/qq_46467126/article/details/121055475 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |