STM32常见应用分析 arm 单片机 时钟 入门 深入
系统时钟的监控和切换(应用举例)
启动时钟安全系统CSS:
RCC_ClockSecuritySystemCmd(ENABLE);
(NMI中断是不可屏蔽的!)
外部振荡器实现时,产生中断,对应的中断程序:
void NMIException(void) {
if (RCC_GetITStatus(RCC_IT_CSS) != RESET)
// HSE、PLL已被禁止(但是PLL设置未变) {
// 客户添加相应的系统保护代码处
// 下面为HSE恢复后的预设置代码
RCC_HSEConfig(RCC_HSE_ON); // 使能HSE
RCC_ITConfig(RCC_IT_HSERDY, ENABLE); // 使能HSE就绪中断 RCC_ITConfig(RCC_IT_PLLRDY, ENABLE); // 使能PLL就绪中断
RCC_ClearITPendingBit(RCC_IT_CSS); // 清除时钟安全系统中断的挂起位 // 至此,一旦HSE时钟恢复,将发生HSERDY中断,在RCC中断处理程序里, 系统时钟可以设置到以前的状态 } }
在RCC的中断处理程序中,再对HSE和PLL进行相应的处理。
4