從51單片機(jī)轉(zhuǎn)到STM32單片機(jī)有點(diǎn)困難,很多理解都停留在51的概念上,對(duì)STM32單片機(jī)學(xué)習(xí)需要重新認(rèn)識(shí),比如RTC......RTC是STM32單片機(jī)的脈搏,是單片機(jī)的驅(qū)動(dòng)源。使用任何一個(gè)外設(shè)都必須打開(kāi)相應(yīng)的時(shí)鐘。這樣的好處就是,如果不使用一個(gè)外設(shè)的時(shí)候,就把它的時(shí)鐘關(guān)掉,從而可以降低系統(tǒng)的功耗,達(dá)到節(jié)能,實(shí)現(xiàn)低功耗的效果。
本文引用地址:http://m.butianyuan.cn/article/201611/322966.htmSTM32單片機(jī)的時(shí)鐘可以由以下3個(gè)時(shí)鐘源提供:
1、HSI:高速內(nèi)部時(shí)鐘信號(hào) stm32單片機(jī)內(nèi)帶的時(shí)鐘 (8M頻率)精度較差
2、HSE:高速外部時(shí)鐘信號(hào) 精度高 來(lái)源(1)HSE外部晶體/陶瓷諧振器(晶振) (2)HSE用戶外部時(shí)鐘
3、LSE:低速外部晶體 32.768kHz 主要提供一個(gè)精確的時(shí)鐘源 一般作為RCC時(shí)鐘使用
stm32單片機(jī)的將時(shí)鐘信號(hào)(例如HSE)經(jīng)過(guò)分頻或倍頻(PLL)后,得到系統(tǒng)時(shí)鐘,系統(tǒng)時(shí)鐘經(jīng)過(guò)分頻,產(chǎn)生外設(shè)所使用的時(shí)鐘。
了解stm32單片機(jī)的時(shí)鐘,下面就是如何使用,我舉個(gè)使用HSE時(shí)鐘的例子。
設(shè)置時(shí)鐘流程:
1、將RCC寄存器重新設(shè)置為默認(rèn)值RCC_DeInit
2、打開(kāi)外部高速時(shí)鐘晶振HSERCC_HSEConfig(RCC_HSE_ON);
3、等待外部高速時(shí)鐘晶振工作HSEStartUpStatus = RCC_WaitForHSEStartUp();
4、設(shè)置AHB時(shí)鐘RCC_HCLKConfig;
5、設(shè)置高速AHB時(shí)鐘RCC_PCLK2Config;
6、設(shè)置低速速AHB時(shí)鐘RCC_PCLK1Config
7、設(shè)置PLLRCC_PLLConfig
8、打開(kāi)PLLRCC_PLLCmd(ENABLE);
9、等待PLL工作while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
10、設(shè)置系統(tǒng)時(shí)鐘RCC_SYSCLKConfig
11、判斷是否PLL是系統(tǒng)時(shí)鐘while(RCC_GetSYSCLKSource() != 0x08)
12、打開(kāi)要使用的外設(shè)時(shí)鐘RCC_APB2PeriphClockCmd()/RCC_APB1PeriphClockCmd()
評(píng)論