使能寄存器,复位和时钟单元(RCU)
前言
RCU 是复位和时钟单元,复位控制包括三种控制方式:电源复位、系统复位和备份域复位。时
钟控制单元提供了一系列频率的时钟功能。章节3.19.1描述了RCU 的寄存器列表,章节3.19.2
对 RCU 库函数进行说明。
一、stem32的3个使能寄存器
1表示使能
PFEN F端口的pin enable
GPIO 端口 F 时钟使能
二、RCU常见的库函数
rcu_periph_clock_enable():使能外设时钟
void rcu_periph_clock_enable(rcu_periph_enum periph);
periph:RCU_AF RCU_GPIOX RCU_USART0 RCU_I2C0 RCU_CAN0
/* enable the USART0 clock */
rcu_periph_clock_enable(RCU_USART0);
rcu_periph_reset_enable():使能外设复位
void rcu_periph_reset_enable(rcu_periph_reset_enum periph_reset);
/* enable SPI0 reset */
rcu_periph_reset_enable(RCU_SPI0RST);
rcu_system_clock_source_config():配置选择系统时钟源
void rcu_system_clock_source_config(uint32_t ck_sys);
/* configure the CK_HXTAL as the CK_SYS source */
rcu_system_clock_source_config(RCU_CKSYSSRC_HXTAL);
rcu_system_clock_source_get():获取系统时钟源选择状态
uint32_t rcu_system_clock_source_get(void);
uint32_t temp_cksys_status;
/* get the CK_SYS source */
temp_cksys_status = rcu_system_clock_source_get();
三、NVIC常见的库函数
nvic_priority_group_set( ):配置优先级组的位长度
void nvic_priority_group_set(uint32_t nvic_prigroup);
/* priority group configuration , 0 bits for pre-emption priority 4 bits for subpriority */
nvic_priority_group_set(NVIC_PRIGROUP_PRE0_SUB4);
nvic_irq_enable( ):使能中断,配置中断的优先级
void nvic_irq_enable(uint8_t nvic_irq, uint8_t nvic_irq_pre_priority, uint8_t
nvic_irq_sub_priority);
nvic_irq:EXTI0_IRQn EXTI5_9_IRQn USART0_IRQn
/* enable window watchDog timer interrupt , pre-emption priority is 1, subpriority is 1 */
nvic_irq_enable(WWDGT_IRQn,1,1);
)