STM32学习笔记之RCC模块(实操篇)

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨

📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852

📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉

📢:内容若有错误,敬请留言 📝指正!原创文,转载注明出处

文章目录

  • [1. 系统复位](#1. 系统复位)
    • [1.1 软件复位](#1.1 软件复位)

1. 系统复位

只要发生以下事件之一,就会产生系统复位,而系统复位会将其它全部寄存器都复位为复位值。

NRST 引脚低电平(外部复位)

窗口看门狗计数结束( WWDG 复位)

独立看门狗计数结束( IWDG 复位)

软件复位( SW 复位)

低功耗管理复位

1.1 软件复位

软件复位(SW 复位)是指通过软件指令触发的复位操作,它可以将系统恢复到初始状态。NVIC_SystemReset() 是一个标准库函数,用于触发系统的软件复位。调用该函数后,系统会停止当前正在执行的任务,将各个寄存器和系统状态恢复到初始状态,然后从复位向量处重新开始执行程序。

c 复制代码
void NVIC_SystemReset(void)
{
  __DSB();                                                     
                                                                  
  SCB->AIRCR  = ((0x5FA << SCB_AIRCR_VECTKEY_Pos)      |
                 (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
                 SCB_AIRCR_SYSRESETREQ_Msk);                   
  __DSB();                                                    
  while(1);                                                    
}
相关推荐
脑洞代码1 小时前
ADXL345 SPI加速度传感器Linux驱动开发笔记
linux·驱动开发·笔记
新子y1 小时前
【小白笔记】 while 与 for + break 的比较分析
笔记·python
せいしゅん青春之我1 小时前
【JavaEE初阶】网络经典面试题小小结
java·网络·笔记·网络协议·tcp/ip·java-ee
南♡黎(・ิϖ・ิ)っ1 小时前
JavaEE初阶,文件IO(2)
java·笔记·java-ee
野老杂谈2 小时前
如何快速学习智能合约开发语言 Solidity
开发语言·学习·智能合约·solidity·以太坊·区块链开发
Han.miracle2 小时前
Java线程的学习—多线程(一)
java·开发语言·学习
是店小二呀2 小时前
Trilium非线性笔记测评:本地知识库+远程协作,构建你的第二大脑!
笔记
忧郁奔向冷的天2 小时前
视觉SLAM十四讲2nd—学习笔记(二)20250817
笔记·学习
立志成为大牛的小牛3 小时前
数据结构——三十一、最小生成树(王道408)
数据结构·学习·程序人生·考研·算法
摇滚侠3 小时前
Spring Boot3零基础教程,Actuator 导入,笔记82
java·spring boot·笔记