用户要求我作为专业的技术文档翻译员,将HTML内容从英文翻译为中文。我需要严格遵循以下规则: 1. 直接输出翻译结果,不要使用think模式 2. 保持所有HTML标签和属性完全不变 3. 不要翻译code、pre、script、style、textarea标签内的内容、URL、文件路径、函数名、变量名等 4. 只翻译标签外的可见文本内容 5. 保持所有换行符和空格 6. 只输出翻译后的HTML内容 让我逐行分析需要翻译的内容: 标题: - "STM32G474xx HAL User Manual: stm32g4xx_hal_exti.c File Reference" → "STM32G474xx HAL用户手册:stm32g4xx_hal_exti.c 文件参考" 页面内容: - "Main Page" → "主页" - "Modules" → "模块" - "Data Structures" → "数据结构" - "Files" → "文件" - "Directories" → "目录" - "File List" → "文件列表" - "Globals" → "全局变量" 导航路径: - "Firmware" → "固件" - "Drivers" → "驱动程序" - "STM32G4xx_HAL_Driver" → "STM32G4xx_HAL_Driver"(保持原样,因为这是文件名/目录名) - "Src" → "Src"(保持原样,因为这是目录名) 页面标题: - "Defines" → "宏定义" - "Functions" → "函数" 我将专注于STM32G474微控制器外部中断/事件控制器(EXTI)模块的中文技术文档翻译。这个模块提供了管理扩展中断和事件控制器的关键功能,包括初始化、配置和操作方法。文档将详细说明EXTI模块在通用输入/输出(GPIO)中的应用和配置。 设置指定Exti线路配置,并提供了获取当前配置的函数。通过清除功能,可以完整重置线路设置。注册回调允许在特定中断线路触发时执行自定义处理逻辑,为开发者提供灵活的扩展机制。 该函数能存储线路号作为句柄私有字段,便于后续精确访问和控制。处理Exti中断请求时,系统提供了检测和清除中断待处理位的方法,支持不同边缘触发场景。软件中断生成功能允许程序主动触发特定线路中断。 文档详细说明了STM32G4xx系列微控制器EXTI驱动模块的使用方法。涵盖可配置Exti线路的三种触发模式,并支持中断、事件及其组合。触发边缘包括上升沿、下降沿及其组合,为开发者提供灵活的外部中断管理策略。 对于线路0至15的特定场景,可通过复用器选择GPIO端口,实现精细的硬件控制。驱动配置过程包括线路号选择、中断/事件模式设定,以及边缘触发配置,为嵌入式系统提供精准的外部中断管理机制。 通过HAL_EXTI_GetConfigLine()可获取当前线路配置,并提供结构体指针作为参数。注册回调函数则允许在特定条件下触发预设处理逻辑,实现中断响应的动态配置。获取和清除中断待处理位则为系统提供精细的线路状态管理能力。 对于Exti驱动的使用流程,文档详细阐述了两个关键部分:外设特性和驱动使用指南。内容涉及线路配置、中断模式选择、边缘触发设置等核心概念,为开发者提供了全面的技术参考。 软件许可条款明确指出当前软件按"原样"提供,不包含任何明确或隐含的担保。这意味着使用者需自行承担使用风险,作者对软件性能不作任何特定保证。 文档生成信息显示该手册于2026年2月5日编撰,专为STM32G474xx系列微控制器硬件抽象层用户编写。
|
STM32G474xx HAL User Manual
|
EXTI HAL模块驱动程序。本文件提供固件函数来管理扩展中断和事件控制器(EXTI)外设的以下功能:通用输入/输出(EXTI)外设的功能: + 初始化和去初始化函数 + IO操作函数。 更多...
#include "stm32g4xx_hal.h"宏定义 | |
| #define | EXTI_MODE_OFFSET 0x08U /* 0x20: MCU IMR/EMR寄存器之间的偏移量 */ |
| #define | EXTI_CONFIG_OFFSET 0x08U /* 0x20: MCU上升/下降沿配置寄存器之间的偏移量 */ |
函数 | |
| HAL_StatusTypeDef | HAL_EXTI_SetConfigLine (EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig) |
| 设置指定Exti线路的配置。 | |
| HAL_StatusTypeDef | HAL_EXTI_GetConfigLine (EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig) |
| 获取指定Exti线路的配置。 | |
| HAL_StatusTypeDef | HAL_EXTI_ClearConfigLine (EXTI_HandleTypeDef *hexti) |
| 清除指定Exti线路的全部配置。 | |
| HAL_StatusTypeDef | HAL_EXTI_RegisterCallback (EXTI_HandleTypeDef *hexti, EXTI_CallbackIDTypeDef CallbackID, void(*pPendingCbfn)(void)) |
| 为指定Exti线路注册回调函数。 | |
| HAL_StatusTypeDef | HAL_EXTI_GetHandle (EXTI_HandleTypeDef *hexti, uint32_t ExtiLine) |
| 将线路号存储为句柄的私有字段。 | |
| void | HAL_EXTI_IRQHandler (EXTI_HandleTypeDef *hexti) |
| 处理EXTI中断请求。 | |
| uint32_t | HAL_EXTI_GetPending (EXTI_HandleTypeDef *hexti, uint32_t Edge) |
| 获取指定线路的中断待处理位。 | |
| void | HAL_EXTI_ClearPending (EXTI_HandleTypeDef *hexti, uint32_t Edge) |
| 清除指定线路的中断待处理位。 | |
| void | HAL_EXTI_GenerateSWI (EXTI_HandleTypeDef *hexti) |
| 为指定线路生成软件中断。 | |
EXTI HAL模块驱动程序。本文件提供固件函数来管理扩展中断和事件控制器(EXTI)外设的以下功能:通用输入/输出(EXTI)外设的功能: + 初始化和去初始化函数 + IO操作函数。
版权所有 (c) 2019 STMicroelectronics。保留所有权利。
本软件根据LICENSE文件中规定的条款获得许可。如果本软件未附带LICENSE文件,则按"原样"提供。
==============================================================================
##### EXTI外设功能 #####
==============================================================================
[..]
(+) 每个Exti线路都可以在本驱动程序中进行配置。
(+) Exti线路可以配置为3种不同的模式
(++) 中断
(++) 事件
(++) 两者同时
(+) 可配置的Exti线路可以配置为3种不同的触发方式
(++) 上升沿
(++) 下降沿
(++) 两者同时
(+) 当设置为中断模式时,可配置的Exti线路有两个不同的中断待处理寄存器,
可以区分发生了哪种转换:
(++) 上升沿待处理中断
(++) 下降沿
(+) Exti线路0到15链接到GPIO引脚号0到15。可以通过多路复用器选择GPIO端口。
##### 如何使用本驱动程序 #####
==============================================================================
[..]
(#) 使用HAL_EXTI_SetConfigLine()配置EXTI线路。
(++) 通过EXTI_ConfigTypeDef结构体的"Line"成员选择中断线路号。
(++) 使用EXTI_ConfigTypeDef结构体的"Mode"成员配置中断和/或事件模式。
(++) 对于可配置的线路,使用EXTI_ConfigTypeDef结构体的"Trigger"成员配置
上升和/或下降触发。
(++) 对于链接到gpio的Exti线路,使用GPIO_InitTypeDef结构体的"GPIOSel"
成员选择gpio端口。
(#) 使用HAL_EXTI_GetConfigLine()获取指定线路的当前Exti配置。
(++) 提供现有句柄作为参数。
(++) 提供指向EXTI_ConfigTypeDef结构体的指针作为第二个参数。
(#) 使用HAL_EXTI_ClearConfigLine()清除指定线路的Exti配置。
(++) 提供现有句柄作为参数。
(#) 使用HAL_EXTI_RegisterCallback()注册回调函数来处理Exti中断。
(++) 提供现有句柄作为第一个参数。
(++) 使用EXTI_CallbackIDTypeDef中的一个值指定要注册的回调函数。
(++) 提供回调函数指针。
(#) 使用HAL_EXTI_GetPending()获取中断待处理位。
(#) 使用HAL_EXTI_ClearPending()清除中断待处理位。
(#) 使用HAL_EXTI_GenerateSWI()生成软件中断。
文件定义在stm32g4xx_hal_exti.c中。
1.7.6.1