STM32F101xx/STM32F103xx固件函数库NVIC模块详解
需积分: 36 52 浏览量
更新于2024-08-09
收藏 4.7MB PDF 举报
"本文档是关于STM32F101xx和STM32F103xx微控制器的固件函数库用户手册,详细介绍了NVIC(Nested Vector Interrupt Controller)库函数,这些函数用于管理和配置中断系统。"
NVIC(Nested Vector Interrupt Controller)是STM32系列微控制器中的中断控制器,它负责处理和调度来自多个外设的中断请求。在STM32的固件函数库中,NVIC提供了多种库函数来帮助开发者有效地管理中断和优先级。
1. `NVIC_DeInit` 和 `NVIC_SCBDeInit` 函数用于将NVIC和System Control Block (SCB)寄存器重置到默认状态,这在初始化或复位系统时非常有用。
2. `NVIC_PriorityGroupConfig` 允许设置中断优先级分组,分为先占优先级和从优先级。这允许开发者根据需求分配不同的中断优先级。
3. `NVIC_Init` 用于根据指定的结构体参数初始化NVIC寄存器,结构体包含中断通道、优先级等信息,确保中断配置正确。
4. `NVIC_StructInit` 是一个辅助函数,用于填充NVIC初始化结构体的所有字段为默认值,方便快速初始化。
5. `NVIC_SETPRIMASK`、`NVIC_RESETPRIMASK`、`NVIC_SETFAULTMASK` 和 `NVIC_RESETFAULTMASK` 用于控制PRIMASK和FAULTMASK寄存器,这些寄存器可以防止在中断服务程序中发生其他中断。
6. `NVIC_BASEPRICONFIG` 可以改变执行优先级,提升低可设置优先级到较高的级别。
7. `NVIC_GetBASEPRI` 返回当前的BASEPRI屏蔽值,这有助于了解当前中断处理的状态。
8. `NVIC_GetCurrentPendingIRQChannel` 返回正在等待处理的中断通道标识符。
9. `NVIC_GetIRQChannelPendingBitStatus`、`NVIC_SetIRQChannelPendingBit` 和 `NVIC_ClearIRQChannelPendingBit` 分别用于检查、设置和清除中断通道的挂起位,控制中断请求的状态。
10. `NVIC_GetCurrentActiveHandler` 提供当前正在执行的中断处理程序或系统处理程序的标识符。
11. `NVIC_GetIRQChannelActiveBitStatus` 检查中断通道的活动位,表明中断是否已触发并正在处理。
12. `NVIC_GetCPUID` 返回CPU ID,包括Cortex-M3内核的版本信息和实现细节。
13. `NVIC_SetVectorTable` 设置向量表的位置和偏移,这对于定位中断处理程序的入口地址至关重要。
14. `NVIC_GenerateSystemReset` 和 `NVIC_GenerateCoreReset` 用于产生系统复位和内核复位,以重启微控制器。
15. `NVIC_SystemLPConfig` 用于配置低功耗模式,控制何时进入睡眠或其他低功耗状态。
16. `NVIC_SystemHandlerConfig`、`NVIC_SystemHandlerPriorityConfig`、`NVIC_GetSystemHandlerPendingBitStatus`、`NVIC_SetSystemHandlerPendingBit` 和 `NVIC_ClearSystemHandlerPendingBit` 与上述中断通道的函数类似,但针对的是系统处理程序,如NMI(非 maskable interrupt)和Hard Fault。
17. `NVIC_GetSystemHandlerActiveBitStatus` 检查系统处理程序的活动状态。
18. `NVIC_GetFaultHandlerSources` 和 `NVIC_GetFaultAddress` 用于获取导致系统处理程序触发的错误源和故障发生的位置,用于故障排查和调试。
这个库提供了全面的中断管理功能,不仅简化了中断处理的编程,还通过实时错误检测增强了软件的健壮性。虽然为了通用性和易用性,可能会牺牲一定的代码效率和大小,但对大多数应用来说,这是个很好的起点。对于有特殊要求的项目,开发者可以根据需要调整这些库函数。
2024-01-09 上传
2011-10-27 上传
114 浏览量
2022-11-17 上传
2024-01-01 上传
2022-08-09 上传
2023-03-14 上传
点击了解资源详情
点击了解资源详情
杨_明
- 粉丝: 79
- 资源: 3862
最新资源
- 过滤器返冲洗控制程序.rar
- mod5
- ImgHosting:图片托管
- 云原生架构白皮书.zip
- 行业文档-设计装置-一种可充气变形省空的书架.zip
- TPFinal_IngSoftware2020_UCEL:在Web的Aportes Tecso仓库创建证书,在UCEL的Ingenieria软件工程2020版最终发布
- LP2
- node-sqs-processor:SQS队列处理模块
- 三系列浓相输送监控系统设计与实现
- Accuinsight-1.0.35-py2.py3-none-any.whl.zip
- node-servoblaster:用于 Node.js 的 ServoBlaster 库
- fb41源程序.rar
- git-json-api:通过HTTP从Git存储库中的JSON文件中获取内容(以及POST更改)
- 调试
- assignment
- weixin052用于日语词汇学习的微信小程序+ssm后端毕业源码案例设计