STM32為什么必須先配置時(shí)鐘再配置GPIO?答案在這里
所有寄存器都需要時(shí)鐘才能配置吧,寄存器是由D觸發(fā)器組成的,只有送來(lái)了時(shí)鐘,觸發(fā)器才能被改寫(xiě)值。
任何MCU的任何外設(shè)都需要有時(shí)鐘,8051也是如此;STM32為了讓用戶更好地掌握功耗,對(duì)每個(gè)外設(shè)的時(shí)鐘都設(shè)置了開(kāi)關(guān),讓用戶可以精確地控制,關(guān)閉不需要的設(shè)備,達(dá)到節(jié)省供電的目的。
51單片機(jī)不用配置IO時(shí)鐘,只是因?yàn)槟J(rèn)使用同一個(gè)時(shí)鐘,這樣是方便,但是這樣的話功耗就降低不了。
例如,某個(gè)功能不需要,但是它還是一直運(yùn)行。
STM32需要配置時(shí)鐘,就可以把不需要那些功能的功耗去掉。
當(dāng)你想關(guān)閉某個(gè)IO的時(shí)候,關(guān)閉它想對(duì)應(yīng)的時(shí)鐘使能就是了,不過(guò)在51里面,在使用IO的時(shí)候是沒(méi)有設(shè)置IO的時(shí)鐘的,還有在STM32中,有外部和內(nèi)部時(shí)鐘之分,關(guān)于時(shí)鐘等好好研究
ARM的芯片都是這樣,外設(shè)通常都是給了時(shí)鐘后,才能設(shè)置它的寄存器(即才能使用這個(gè)外設(shè))。STM32、LPC1XXX等等都是這樣。
這么做的目的是為了省電,使用了所謂時(shí)鐘門控的技術(shù)。
這也屬于電路里同步電路的范疇:同步電路總是需要1個(gè)時(shí)鐘
編輯:admin 最后修改時(shí)間:2018-05-18