概述
点亮LED表面看起来貌似很简单,但是如何想要搞清楚其背后牵涉的每一行代码的具体含义,还是需要花费一些功夫的,而且,只有把LED的背后只是搞清楚了,才算嵌入式开发的基础入门。
今天我们就来研究一下LED的重头戏,RCC_Init;什么是RCC?上手册:

RCC
RCC,Reset and Clock Control,重置以及时钟控制;STM32手册使用了两个章节来对其进行描述,可见它的重要性;对于RCC的初始化也是比较复杂,里面包含了STM32对于时钟的相关机制,
代码总览
void RCC_init(uint16_t PLL)
{
uint32_t temp=0;
*((uint32_t *)RCC_CR) |= 0x00010000;
while(!( *((uint32_t *)RCC_CR) >>17));
*((uint32_t *)RCC_CFGR) = 0X00000400;
PLL -= 2;
*((uint32_t *)RCC_CFGR) |= PLL<<18;
*((uint32_t *)RCC_CFGR) |= 1<<16;
*((uint32_t *)FLASH_ACR)|=0x2;
*((uint32_t *)RCC_CR) |= 0x01000000;
while(!(*((uint32_t *)RCC_CR) >> 25));
*((uint32_t *)RCC_CFGR) |=