学习CubeIDE——外设中断开发

实验现象:使用按键(KEY_2)来产生中断,中断程序是LED灯翻转

在我看来,外设中断就是芯片与人们对其进行操作和控制的一种交互方式。芯片内的程序是循环执行下去的,我们通过一些操作,比如键盘按键,鼠标等让CPU意识到有指令进来,放下手头的工作来响应我们。

1、ioc设置

将PC13 设置GPIO_EXTI 模式

(1)在GPIO mode 中选择 “下降沿触发中断模式”,选择接“上拉电阻” 。

(2) 在NVIC中点击Enable,使能中断。

2、程序

中断的过程可以简单地理解为: 外设中断触发——中断处理函数——中断操作

中断处理函数,分为优先级选择——>中断源选择——>回调函数。这里为什么要打箭头呢?

优先级选择:EXTI15_10_IRQHandler()   位于 “stm32f1xx_it.c”  

 中断源选择: HAL_GPIO_EXTI_IRQHandler(KEY_2_Pin) 位于“stm32f1xx_hal_gpio.c”。

 弱回调函数:__weak void HAL_GPIO_EXTI_Callback()  位于“stm32f1xx_hal_gpio.c”。

 可以看到这三个函数是依次包含。回调函数一般是我们来写,这里的弱回调是为了在没有回调函数时让程序正常执行。

我们写的回调函数:

回调函数

 这里的 HAL_NVIC_DisableIRQ(KEY_2_EXTI_IRQn); 是在按键处理期间禁止再次触发KEY2键的外部中断。HAL_NVIC_EnableIRQ(KEY_2_EXTI_IRQn); 结束后开启中断允许。

以上是笔者的理解,理解有误不要细究。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值