STM32 外部中断

在这里插入图片描述

加上了__weak 修饰符的函数,用户可以在用户文件中重新定义一个同名函数,最终编译器编译的时候,会选择用户定义的函数,如果用户没有重新定义这个函数,
那么编译器就会执行__weak 声明的函数,并且编译器不会报错。

在这里插入图片描述
在这里插入图片描述

所以重点是其中的回调函数(Callback)就是外部中断出发时所执行的函数
前面都是外部中断开启所必须的步骤。
令KEY1和KEY2的时钟打开;设置GPIO_InitStruct初始化位上下沿触发,同时位上拉电阻;分别将KEY1和KEY2分别射中Init,这边也再次强调了再外部中断设置中,类似于PB1和PE1并不能复用哦,端口不同但是针脚相同就不太行;设置外部中断的优先级;设置外部中断使能(EnableIRQ);重定向中断服务函数,随后在重定向中断服务函数时再重定向外部回调函数

#define K1		HAL_GPIO_ReadPin(KEY1_PORT,KEY1_PIN)
#define K2 HAL_GPIO_ReadPin(KEY2_PORT,KEY2_PIN)
//hal_gpio_readpin函数的返回值为GPIO引脚状态,类型为GPIO_PinState。
void HAL GPIO EXTI Callback(uint16 t GPIO Pin)
{
if(KEY1_PIN == GPIO Pin){
key1_val = Kl;}
else if(KEY2PIN == GPIO Pin){
key2_val = K2;}

uint8_t KEYl_Value (void){return key1_val;}
uint8_t KEY2_Value (void){
return key2 val;}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值