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

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

3天内不再提示

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

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

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

    文章

    6812

    浏览量

    147652
  • 嵌入式
    +关注

    关注

    4983

    文章

    18286

    浏览量

    288509
  • stm32f1
    +关注

    关注

    1

    文章

    53

    浏览量

    12049
  • HAL库
    +关注

    关注

    1

    文章

    112

    浏览量

    5879
收藏 人收藏

    评论

    相关推荐

    stm32hal外部中断巨坑

    stm32hal外部中断巨坑,如果使用按键外部中断会导致频繁触发
    发表于 08-13 08:17

    STM32F1例程讲解外部中断

    [STM32F1官方例程讲解3] 外部中断EXTI一级目录二级目录三级目录一级目录二级目录三级目录
    发表于 08-16 09:05

    基于HALSTM32f429外部中断配置解析

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

    小白该怎样去使用STM32F1外部中断

    STM32中的中断系统是什么?使用STM32F1外部中断的基本步骤有哪些呢?
    发表于 11-18 07:00

    STM32F1中断线是什么?

    STM32F1中断线是什么?
    发表于 11-18 06:00

    STM32F1工程的内部时钟和外部时钟定义是什么

    STM32F1工程的内部时钟和外部时钟定义是什么?STM32F1工程的内外部时钟结构是怎样的?
    发表于 11-22 06:01

    STM32f1单片机的HAL是如何去定义定时器相关的初始化结构体的

    STM32F1定时器可分为哪几类呢?STM32f1单片机的HAL是如何去定义定时器相关的初始化结构体的?
    发表于 11-23 07:39

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

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

    STM32F1外部中断简介

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

    STM32F1系列HAL配置系统时钟和启动过程简单讲解

    STM32F1系列HAL配置系统时钟和启动过程简单讲解STM32F1采用ARM-Cortex-M3内核,对于他的启动以及复位,时钟系统,都是紧密联系的。以下内容对你对模块的操作帮助可
    发表于 12-09 07:53

    STM32F1系统架构的相关资料分享

    STM32学习_凯斯2】STM32F1系统架构STM32F1系统时钟系统时钟简介系统时钟配置(RCC下很多寄存器配置)本文为原子哥hal
    发表于 12-10 08:12

    外部中断实验STM32F1xx概述

    参考资料:战舰/精英STM32F1开发板《STM32开发指南-库函数版本》-第10章 外部中断实验STM32F1xx官方资料:《
    发表于 01-10 06:27

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

    Package for STM32F0 Series)本文内容:STM32CubeMx 配置外部中断外部
    发表于 12-06 11:36 14次下载
    <b class='flag-5'>STM32</b>F0x <b class='flag-5'>HAL</b>库学习笔记(8)<b class='flag-5'>外部</b><b class='flag-5'>中断</b>的配置

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

    STM32f429外部中断配置解析基于HAL
    发表于 12-16 16:58 9次下载
    <b class='flag-5'>STM32</b>f429<b class='flag-5'>外部</b><b class='flag-5'>中断</b>配置解析基于<b class='flag-5'>HAL</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>库 CubeMX教程(四)按键<b class='flag-5'>外部</b><b class='flag-5'>中断</b>