概述
點亮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) |=