STM32 RCC->CFGR|=0x00000002;//PLL作为系统时钟 while(temp!=0x02) //等待PLL作为系统时钟设置成功 { temp=RCC->CFGR>>2; temp&=0x03; }
时间: 2024-01-24 19:17:52 浏览: 44
这是STM32的代码,主要是设置PLL作为系统时钟,并等待PLL设置成功。具体来说,这段代码将PLL作为系统时钟,并通过循环等待确认PLL设置成功。
首先,`RCC->CFGR` 是RCC寄存器的配置寄存器,用于配置系统时钟。`CFGR|=0x00000002` 表示将PLL作为系统时钟源。
接着,进入一个循环,条件是 `temp!=0x02`。在循环体内,先读取 `RCC->CFGR`,然后将其右移两位(因为PLL的时钟源位于CFGR的位2和位3)。接着,使用位掩码操作将`temp`设置为CFGR中的PLL时钟源位,并检查其是否等于0x02。如果不是,则继续循环等待。如果是,则说明PLL已成功设置为系统时钟源,退出循环。
总的来说,这段代码的作用是确保系统时钟源已经切换到PLL,并等待PLL设置成功。
相关问题
STM32 while(temp!=0x02) //等待 PLL作为系统时钟设置成功 { temp=RCC-->CFGR>>2; temp&=0x03;
这段代码的作用是等待系统时钟源被设置为 PLL。
在STM32中,时钟源可以选择内部RC振荡器、外部晶振或PLL。其中,PLL是一种锁相环技术,可以将输入的时钟信号倍频或分频,从而得到高精度的时钟信号。
在这段代码中,首先读取RCC寄存器的CFGR位,该寄存器用于配置系统时钟源。然后将CFGR右移2位,得到PLL作为系统时钟源的配置。最后将其与0x03按位与,得到PLL作为系统时钟源的状态值。
接着,使用一个while循环来等待PLL作为系统时钟源已经配置成功。循环条件为temp!=0x02,即当PLL作为系统时钟源配置成功时,temp的值为0x02。在每次循环中,再次读取CFGR中PLL作为系统时钟源的配置状态,并与0x03按位与,得到当前的状态值。如果当前状态值与0x02相等,则说明PLL作为系统时钟源已经成功配置,退出循环。否则继续等待,直到PLL配置成功。
stm32 RCC-->CFGR=0X00000400;
这段代码使用的是 STM32 MCU 的 RCC(Reset and Clock Control)模块,对时钟系统进行配置。具体来说,0X00000400 是设置 PLL(Phase Locked Loop,相位锁定循环)时钟源为 HSE(High-Speed External)晶体振荡器,并且使 PLL 时钟频率为 HSE 频率乘以 4。该配置常用于需要高性能的应用场景。