0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

stm32f1如何将外部中断关掉hal库

科技绿洲 来源:网络整理 作者:网络整理 2023-12-22 13:52 3832次阅读

STM32F1系列微控制器是STMicroelectronics制造的32位ARM Cortex-M3内核的嵌入式微控制器系列。该系列采用了HAL库(Hardware Abstraction Layer)来简化芯片和外设的驱动开发。在STM32F1中,外部中断的关闭是通过HAL库中的相应函数来实现的。下面我将详细介绍如何使用HAL库关闭外部中断。

  1. 引入必要的头文件
    要使用外部中断功能,首先需要引入相关的头文件。在HAL库中,与外部中断相关的头文件是stm32f1xx_hal_exti.h和stm32f1xx_hal_gpio.h。这两个头文件提供了对外部中断和GPIO的定义和函数实现。
  2. 配置外部中断引脚
    外部中断通常与GPIO引脚配合使用。在HAL库中,首先需要通过GPIO_InitTypeDef结构体定义和配置相关的GPIO引脚。GPIO_InitTypeDef结构体中包含了引脚的模式、速度、上拉/下拉等信息。例如,如果需要关闭外部中断的引脚是PA0引脚,可以通过以下代码进行配置:
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  1. 配置外部中断线路
    在HAL库中,外部中断由中断线路和中断通道来管理。通过配置中断线路,可以将外部中断与GPIO引脚相连。通过配置中断通道,可以指定外部中断的触发方式和优先级。以下是一个示例代码,将PA0引脚与外部中断线路0关联,并配置为上升沿触发:
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
  1. 外部中断处理函数
    在配置完外部中断后,可以编写相应的中断处理函数。在HAL库中,中断处理函数的命名格式为void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)。该函数会在外部中断触发时自动被调用。在函数内部,可以执行相应的中断处理操作。以下是一个示例代码,将PA0引脚的中断处理函数置空:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == GPIO_PIN_0)
{
// Do nothing
}
}
  1. 关闭外部中断
    最后,可以通过HAL库提供的函数来关闭外部中断。在HAL库中,外部中断通过中断线路和标志来管理。以下是一个示例代码,关闭外部中断0并清除相关的中断标志:
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0);
HAL_NVIC_DisableIRQ(EXTI0_IRQn);
__HAL_GPIO_EXTI_CLEAR_FLAG(GPIO_PIN_0);

通过以上步骤,可以使用HAL库来关闭外部中断。通过配置相关的GPIO引脚、中断线路和中断通道,编写中断处理函数,以及使用HAL库提供的函数来关闭外部中断和清除中断标志,可以实现对外部中断的控制。

综上所述,本文详细介绍了如何使用HAL库关闭STM32F1系列微控制器的外部中断。通过引入必要的头文件、配置外部中断引脚和线路、编写中断处理函数,以及通过HAL库提供的函数来关闭外部中断和清除中断标志,可以实现对外部中断的控制。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7712

    浏览量

    152616
  • 嵌入式
    +关注

    关注

    5103

    文章

    19265

    浏览量

    309936
  • stm32f1
    +关注

    关注

    1

    文章

    57

    浏览量

    12290
  • HAL库
    +关注

    关注

    1

    文章

    121

    浏览量

    6470
收藏 人收藏

    相关推荐

    基于HALSTM32f429外部中断配置解析

    STM32f429外部中断配置解析基于HAL
    发表于 08-16 09:31

    求大佬分享STM32F1 HAL串口接收中断函数

    求大佬分享STM32F1 HAL中断中断函数
    发表于 12-07 06:12

    STM32F1外部中断简介

    文章目录前言一、 STM32F1 外部中断简介二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重
    发表于 12-09 07:26

    STM32F1系列的HAL手册免费下载

    本文档的主要内容详细介绍的是STM32F1系列单片机的HAL手册免费下载。
    发表于 11-19 14:36 476次下载
    <b class='flag-5'>STM32F1</b>系列的<b class='flag-5'>HAL</b><b class='flag-5'>库</b>手册免费下载

    STM32F1的固件免费下载

    本文档的主要内容详细介绍的是STM32F1的固件免费下载。
    发表于 12-26 17:22 156次下载
    <b class='flag-5'>STM32F1</b>的固件<b class='flag-5'>库</b>免费下载

    STM32F1开发指南(V1.0 -HAL 版)

    STM32F1开发指南(V1.0 -HAL 版)
    发表于 09-28 09:25 0次下载

    STM32f10x 外部中断中断分组

    利用外部中断来实现按键控制LED灯的亮灭。实验工具:MDK5,STM32F103ZET6开发板使用固件编程LED灯引脚PD13,按键PE0首先了解一下32的
    发表于 11-23 18:06 4次下载
    <b class='flag-5'>STM32f</b>10x <b class='flag-5'>外部</b><b class='flag-5'>中断</b>及<b class='flag-5'>中断</b>分组

    STM32公用中断源时的中断分配

    _GPIO_EXTI_GET_IT()函数来分辨中断请求,并请中断和回调函数,无需使用系统的中断函数HAL_GPIO_EXTI_IRQHandler();
    发表于 11-24 16:51 4次下载
    <b class='flag-5'>STM32</b>公用<b class='flag-5'>中断</b>源时的<b class='flag-5'>中断</b>分配

    清泉HAL开发STM32之EXIT

    文章目录前言一、 STM32F1 外部中断简介二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重
    发表于 11-26 12:51 4次下载
    清泉<b class='flag-5'>HAL</b><b class='flag-5'>库</b>开发<b class='flag-5'>STM32</b>之EXIT

    STM32F0x HAL学习笔记(8)外部中断的配置

    本文开发环境:MCU型号:STM32F051R8T6IDE环境: MDK 5.25代码生成工具:STM32CubeMx 5.2.0HAL版本:v1.9.0(
    发表于 12-06 11:36 14次下载
    <b class='flag-5'>STM32F</b>0x <b class='flag-5'>HAL</b><b class='flag-5'>库</b>学习笔记(8)<b class='flag-5'>外部</b><b class='flag-5'>中断</b>的配置

    STM32F1系列HAL配置系统时钟

    STM32F1系列HAL配置系统时钟其实一开始对于时钟我也是知之甚少,在MSP432中我就一直忽视时钟配置,其实也是在STM32学习时落下的病根,现在趁有空补一下。时钟简单讲解对于时
    发表于 12-16 16:57 2次下载
    <b class='flag-5'>STM32F1</b>系列<b class='flag-5'>HAL</b><b class='flag-5'>库</b>配置系统时钟

    STM32f429外部中断配置解析基于HAL

    STM32f429外部中断配置解析基于HAL
    发表于 12-16 16:58 11次下载
    <b class='flag-5'>STM32f</b>429<b class='flag-5'>外部</b><b class='flag-5'>中断</b>配置解析基于<b class='flag-5'>HAL</b><b class='flag-5'>库</b>

    STM32F1系列使用HAL低功耗STOP和STANDBY模式唤醒(RTC时钟唤醒+外部中断唤醒示例)

    STM32F1系列使用HALRTC时钟唤醒低功耗STOP和STANDBY模式目录STM32F1系列使用HAL
    发表于 12-31 19:09 69次下载
    <b class='flag-5'>STM32F1</b>系列使用<b class='flag-5'>HAL</b><b class='flag-5'>库</b>低功耗STOP和STANDBY模式唤醒(RTC时钟唤醒+<b class='flag-5'>外部</b><b class='flag-5'>中断</b>唤醒示例)

    STM32 HAL CubeMX教程(四)按键外部中断

    STM32 HAL CubeMX教程(四)外部中断实验内容NVIC(嵌套向量中断控制器)
    发表于 01-14 15:11 10次下载
    <b class='flag-5'>STM32</b> <b class='flag-5'>HAL</b><b class='flag-5'>库</b> CubeMX教程(四)按键<b class='flag-5'>外部</b><b class='flag-5'>中断</b>

    UM1847_基于STM32F1系列的STM32CubeF1软件使用入门

    UM1847_基于STM32F1系列的STM32CubeF1软件使用入门
    发表于 11-22 08:22 4次下载
    UM1847_基于<b class='flag-5'>STM32F1</b>系列的<b class='flag-5'>STM32CubeF1</b>软件<b class='flag-5'>库</b>使用入门