天天看點

STM32(2):點亮LED(下)概述

概述

點亮LED表面看起來貌似很簡單,但是如何想要搞清楚其背後牽涉的每一行代碼的具體含義,還是需要花費一些功夫的,而且,隻有把LED的背後隻是搞清楚了,才算嵌入式開發的基礎入門。

今天我們就來研究一下LED的重頭戲,RCC_Init;什麼是RCC?上手冊:

STM32(2):點亮LED(下)概述

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) |=
           

繼續閱讀