11 系统控制(SYSCTRL)
11.1 功能概述
SYSCTRL 负责管理、控制各种片上外设,主要功能有:
- 外设的复位
- 外设的时钟管理,包括时钟源、频率设置、门控等
- 其它功能
11.1.1 外设标识
SYSCTRL 为外设定义了几种不同的标识。最常见的几种标识为:
1.SYSCTRL的时钟门控
typedef enum
{
= 4,
SYSCTRL_ClkGate_APB_I2C0 = 5,
SYSCTRL_ClkGate_APB_SPI1 // ...
= 19
SYSCTRL_ClkGate_APB_I2C1 } SYSCTRL_ClkGateItem;
2.SYSCTRL的reset
typedef enum
{
= 0,
SYSCTRL_Reset_AHB_DMA = 1,
SYSCTRL_Reset_AHB_LLE // ...
= 21
SYSCTRL_Reset_APH_TRNG } SYSCTRL_ResetItem;
这些标识用于外设的复位、时钟门控等。
11.2 使用说明
11.2.1 外设复位
通过 SYSCTRL_ResetBlock
复位外设,通过’SYSCTRL_ReleaseBlock’释放复位。
void SYSCTRL_ResetBlock(SYSCTRL_ResetItem item);
void SYSCTRL_ReleaseBlock(SYSCTRL_ResetItem item);
11.2.2 时钟门控
通过 SYSCTRL_SetClkGateMulti
设置门控(即关闭时钟),通过 SYSCTRL_ClearClkGateMulti
消除门控(即恢复时钟)。
void SYSCTRL_SetClkGateMulti(SYSCTRL_ClkGateItem item);
void SYSCTRL_ClearClkGateMulti(SYSCTRL_ClkGateItem item);
SYSCTRL_SetClkGateMulti
和 SYSCTRL_ClearClkGateMulti
可以同时控制多个外设的门控。 items
参数里的各个比特与 SYSCTRL_ClkGateItem
里的各个外设一一对应。
void SYSCTRL_SetClkGateMulti(uint32_t items);
void SYSCTRL_ClearClkGateMulti(uint32_t items);