STM32F101/103 NVIC库详解:快速上手与功能配置

需积分: 32 46 下载量 25 浏览量 更新于2024-08-10 收藏 4.73MB PDF 举报
NVIC库函数是STM32固件库中的核心组件,专为Cortex-M3微控制器如STM32F101xx和STM32F103xx设计。这些函数提供了对中断向量控制器(NVIC)的高级管理和配置能力,对于确保系统稳定性和实时性至关重要。以下是一些主要的NVIC库函数及其功能: 1. **NVIC_DeInit** 和 **NVIC_SCBDeInit**:这两个函数用于将外设NVIC和SCB寄存器恢复到默认配置状态,有助于系统初始化和故障恢复。 2. **NVIC_PriorityGroupConfig**:允许设置优先级分组,区分先占优先级和从优先级,这对于正确调度中断处理非常重要。 3. **NVIC_Init** 和 **NVIC_StructInit**:分别用于根据NVIC_InitStruct参数初始化NVIC寄存器和填充结构体,确保中断配置的准确无误。 4. **NVIC_SETPRIMASK** 和 **NVIC_RESETPRIMASK**:控制PRIMASK,前者提高执行优先级至0,后者则恢复到普通级别,以管理中断上下文切换。 5. **NVIC_SETFAULTMASK** 和 **NVIC_RESETFAULTMASK**:类似地,控制FAULTMASK优先级,用于异常处理和恢复。 6. **NVIC_BASEPRICONFIG** 和 **NVIC_GetBASEPRI**:用于设置和获取基础优先级,决定中断的最低可设置优先级。 7. **NVIC_GetCurrentPendingIRQChannel** 和相关函数:用于查询当前待处理的中断请求通道,以及检查、设置或清除其待处理标志。 8. **NVIC_GetCPUID**:提供微控制器的具体信息,包括Cortex-M3的版本号和实现细节。 9. **NVIC_SetVectorTable**:控制向量表的位置和偏移,这是中断向量的存储区域,关系到中断的响应效率。 10. **NVIC_GenerateSystemReset** 和 **NVIC_GenerateCoreReset**:用于生成系统或内核复位,用于重启或恢复系统状态。 11. **NVIC_SystemLPConfig**:用于系统低功耗模式的配置,节省电力但可能会影响中断处理。 12. **NVIC_SystemHandlerConfig** 和相关函数:管理和配置系统级别的中断处理程序,如看门狗、电源管理等。 13. **NVIC_GetSystemHandlerPendingBitStatus** 和相关函数:监控系统级中断处理程序的状态。 这份固件库提供了高度模块化的驱动接口,便于用户根据应用需求快速集成外设功能。它遵循严格的ANSI-C标准,并包含错误检测功能,增强了代码的健壮性。然而,为了优化代码大小和执行速度,用户可以选择在生产环境中移除这些实时错误检测。对于对代码效率有特殊要求的应用,固件库可以作为参考,开发者可以根据具体情况进行定制和优化。NVIC库函数是STM32F101xx和STM32F103xx微控制器开发中的关键工具,能有效管理和协调中断处理,确保系统的稳定性和实时响应。