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