《M051新塘32位MCU库函数参考手册》详尽介绍了针对M051系列微控制器设计的各种库函数,为开发者提供功能描述、参数说明及使用示例,便于高效编程与调试。
### 新塘32位MCU M051库函数参考手册知识点详解
#### 一、概述
本手册为新塘(Nuvoton)M051系列的32位微控制器提供了详尽的官方库函数介绍,这些库函数简化了开发流程,并帮助开发者更高效地利用MCU的功能。
#### 二、文档结构与相关文档
1. **文档结构**:本手册分为多个章节,包括但不限于概述和SYS驱动介绍等。
2. **相关文档**:手册中提到需要参考的技术规范或设计指南等相关文件以获取更多信息。
#### 三、缩略语和术语
在手册中列出了M051系列MCU相关的专业术语及其缩写:
- **SYS**: 系统控制单元(System Control Unit)。
- **BOD**: 欠压检测器(Brown Out Detector)。
- **POR**: 上电复位(Power On Reset)。
- **HCLK**: 高速时钟(High Speed Clock)。
- **PLL**: 锁相环(Phase-Locked Loop)。
#### 四、数据类型定义
为便于理解库函数的参数和返回值,手册中定义了一些关键的数据类型:
- **E_SYS_IP_RST**:IP复位类型。
- **E_SYS_IP_CLK**:IP时钟类型。
- **E_SYS_PLL_CLKSRC**:PLL时钟源类型。
- **E_SYS_IP_DIV**: IP分频器类型。
- **E_SYS_IP_CLKSRC**: IP时钟源类型。
- **E_SYS_CHIP_CLKSRC**: 芯片时钟源类型。
- **E_SYS_PD_TYPE**:电源下电类型。
#### 五、SYS驱动介绍
SYS驱动是M051系列MCU的核心组成部分,负责管理和配置系统资源如时钟和复位等。本章节详尽介绍了该部分的各个功能点。
#### 六、时钟模块图
通过详细的时钟模块图可以了解M051系列MCU内部时钟信号的产生与分配机制,这对于理解和优化系统的定时至关重要。
#### 七、函数
SYS驱动提供了多种用于系统管理的功能函数:
- **DrvSYS_ReadProductID()**:读取产品ID。
- **DrvSYS_GetResetSource()**:获取复位源。
- **DrvSYS_ClearResetSource()**:清除复位源。
- **DrvSYS_ResetIP()**: 复位指定的IP模块。
- **DrvSYS_ResetCPU():** 复位CPU。
- **DrvSYS_ResetChip():** 复位整个芯片。
- **DrvSYS_SelectBODVolt():** 选择欠压检测器阈值电压。
- **DrvSYS_SetBODFunction()**: 设置欠压检测器功能。
- **DrvSYS_EnableBODLowPowerMode()**: 启用低功耗模式下欠压监测。
- **DrvSYS_DisableBODLowPowerMode()**: 禁止低功耗模式下的欠压检测。
- **DrvSYS_EnableLowVoltReset():** 开启低压复位功能。
- **DrvSYS_DisableLowVoltReset():** 关闭低压复位功能。
- **DrvSYS_GetBODState():** 获取欠压监测器的状态信息。
- **DrvSYS_UnlockProtectedReg()**: 解锁受保护寄存器。
- **DrvSYS_LockProtectedReg()**: 锁定受保护寄存器。
- **DrvSYS_IsProtectedRegLocked()**: 检查受保护的寄存器是否被锁定。
- **DrvSYS_EnablePOR():** 启用上电复位功能。
- **DrvSYS_DisablePOR():** 禁止上电复位功能。
- **DrvSYS_SetIPClock()**: 设置IP时钟配置。
- **DrvSYS_SelectHCLKSource()**: 选择HCLK的时钟源。
- **DrvSYS_SelectSysTickSource()**: 为系统滴答定时器选择合适的时钟源。
- **DrvSYS_SelectIPClockSource():** 选择指定IP模块的时钟源。
- **DrvSYS_SetClockDivider()**: 设置分频器以实现所需频率输出。
- **DrvSYS_SetOscCtrl()**: 配置振荡控制参数。
- **DrvSYS_SetPowerDownWakeUpInt()**: 设置电源下电唤醒中断功能。
- **DrvSYS_EnterPowerDown():** 进入低功耗模式(即电源下电)。
- **DrvSYS_SelectPLLSource()**: 选择锁相环的时钟源输入。
- **DrvSYS_SetPLLMode()**: 配置锁相环的工作方式和参数设置。
- **DrvSYS_GetExtClockFreq():** 获取外部振荡器频率信息。
- **DrvSYS_GetPLLContent():** 查询当前配置下的PLL内容(包括倍频、分频