STM32 IO中断

本文介绍了在STM32开发中遇到的IO中断问题,HAL库缺乏中断示例,通过查阅资料和实践,了解到正确使用IO中断需要设置时钟、使能NVIC、清除中断标志位等步骤。在STM32F103RB-Nucleo板上,通过修改GPIO_IOToggle示例,实现了按键按下翻转LED状态的功能。同时,探讨了BSP_PB_Init函数在简化IO中断初始化方面的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

哈哈,最近搬家加入职没空写笔记,现在还是工作时间写的。

拿出STM32,打算移植下 之前用的库函数,好吧先来个IO中断,纳尼,HAL库没有中断的demo,只有LL库有?好吧试下直接调库函数,好吧失败了。什么鬼居然不给个demo,我怎么知道怎么使用。经过一番资料查找,知道如何使用IO中断了。

IO中断使用方法。

STM32F103RB-Nucleo\Examples\GPIO\GPIO_IOToggle,在这个基础上改。

Nucleo 只有一个按键C13,且外部已经接了上拉,按下短接到地。

代码如下

    main.c中 初始化:
    USER_BUTTON_GPIO_CLK_ENABLE();
    
    GPIO_InitStruct.Mode  = GPIO_MODE_IT_FALLING;
    GPIO_InitStruct.Pull  = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
​
    GPIO_InitStruct.Pin = USER_BUTTON_PIN;
    
    HAL_GPIO_Init(USER_BUTTON_GPIO_PORT, &GPIO_InitStruct);
    
    HAL_NVIC_SetPriority(USER_BUTTON_EXTI_IRQn, 0, 0);
    HAL_NVIC_EnableIRQ(USER_BUTTON_EXTI_IRQn);
    
//  EXTI_HandleTypeDef button_exti_type;
//  button_exti_type.Line = USER_BUTTON_EXTI_IRQn;
//  button_exti_type.Pendin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值