(总结)使用STM32需要注意的问题

对于STM32系统时钟的监控是十分必要的。如果外部晶振失效,对于STM32来说是致命的。尤其在工程中会造成无法预料的损失。所以要总结一下对于STM32时钟安全系统(CSS)。当时钟安全系统被激活后,它会实时监控外部高速振荡器,如果高速外部时钟信号(HSE)发生故障,外部振荡器会自动关闭,并产生时钟安全中断,这个中断会连接到不可屏蔽中断(NMI),此时时钟安全系统会将高速内部RC振荡器切换为其系统时钟源。对于增强型STM32F103来说,时钟失效事件同时会被送入高级定时器TIM1刹车输入端,从而起到保护电机作用。值得注意的是一旦时钟安全系统被激活,当外部高速时钟(HSE)发生故障产生时钟安全中断时,并同时产生不可屏蔽中断(NMI)。此时NMI将会不断被执行,直到时钟安全系统中断挂起位被清除。那么就要在不可屏蔽中断NMI的中断服务函数中必须要通过设置时钟中断寄存器(RCC_CIR)的CSSC位来清除CSS中断。

 //启动时钟安全系统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_
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值