Why do STM32 initialization peripherals need to turn on the clock first?
为什么Stm32初始化外设都需要先打开时钟
理由一
由于STM32属于低功耗的MCU,为了降低功耗,STM32的MCU在复位后会把绝大多数的外设时钟关闭,所以当用户需要使用到MCU内部的某个外设,就必须先开启定时器。
理由二
我们知道想要控制硬件,必须控制硬件的寄存器。然而在数字电路中,寄存器的作用是暂存一组二进制的数据。又寄存器是由触发器(每个触发器暂存1Bit数据)组成的。
不打开时钟,则晶振电路产生的震荡信号就无法传到MCU内部的外设中,即无时钟信号,触发器就无法触发,寄存器也就无法锁存数据。
所以时钟相当于外设的开关,不打开时钟就无法控制硬件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步