先來總結(jié)一下 STM32 操作 I/O 口的步驟(以精英板為例):
① 使能 I/O 口時(shí)鐘,調(diào)用函數(shù)為RCC_APB2PeriphClockCmd();
② 初始化 I/O 參數(shù),調(diào)用GPIO_Init();
③ 操作 I/O 口
看了STM32操作 I/O 口的步驟,是不是一頭霧水,因?yàn)槲覀円郧皩W(xué)習(xí)51單片機(jī)的時(shí)候,根本沒有這么麻煩,I/O 想輸入就直接讀,想輸出就直接賦值,串口、AD轉(zhuǎn)化、外部中斷等等也都是想用就用,不需要單獨(dú)配置時(shí)鐘。
51單片機(jī)的這種做法確實(shí)很方便,不需要有亂七八糟的設(shè)置就能讓芯片跑起來,但是隨之帶來的就是所謂的功耗問題。換句話來說就是一些資源根本用不上,但是芯片卻還給它分配資源,即增加了芯片的負(fù)擔(dān),又浪費(fèi)了資源。
隨著電子產(chǎn)品集成度越來越高,如果還用51單片機(jī)的那套,功耗和發(fā)熱越來越嚴(yán)重,芯片廠商非常無奈也在開始想辦法避免這個(gè)問題,而最直接的思路當(dāng)然就是用多少功能就使能多少功能,對(duì)每個(gè)外設(shè)的時(shí)鐘都設(shè)置了開關(guān),讓用戶可以精確地控制,關(guān)閉不需要的設(shè)備,達(dá)到節(jié)省供電的目的。我們學(xué)51單片機(jī)就知道,單片機(jī)之所以能夠單獨(dú)工作,就是因?yàn)樗知?dú)立的時(shí)鐘(晶振),那如果想關(guān)閉某些功能,就直接關(guān)閉它的時(shí)鐘就好了,所以就出現(xiàn)了這么多的時(shí)鐘和IO配置。
最后總結(jié)就是,默認(rèn)情況下這些時(shí)鐘都是disable的。你要使用它,當(dāng)然需要enable了。
寄存器是由D觸發(fā)器組成的,只有送來了時(shí)鐘,觸發(fā)器才能被改寫值,這樣寄存器才能工作。只不過,在51單片機(jī)一個(gè)時(shí)鐘系統(tǒng)把一切都包了,在STM32中,我們很明確地做好了分工,讓大家各司其職,其實(shí)這樣還有一個(gè)好處就是,不是每個(gè)外設(shè)都需要系統(tǒng)時(shí)鐘那么高的頻率,就像是高射炮打蚊子一個(gè)道理。
來源:https://blog.csdn.net/weixin_44174528/article/details/107355795
轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。
審核編輯:何安
-
STM32
+關(guān)注
關(guān)注
2293文章
11032瀏覽量
365110
發(fā)布評(píng)論請(qǐng)先 登錄
MAX7321 I2C端口擴(kuò)展器,具有8路漏極開路I/O技術(shù)手冊(cè)

MAX7325 I2C端口擴(kuò)展器,提供8路推挽式I/O和8個(gè)漏極開路I/O技術(shù)手冊(cè)

怎樣使用無線 I/O 網(wǎng)關(guān)搭建物聯(lián)網(wǎng)系統(tǒng)

I/O接口與I/O端口的區(qū)別
TSW14J56有預(yù)留的I/O口嗎?有幾個(gè)?電平是什么標(biāo)準(zhǔn)?
請(qǐng)問TXB0108PWR在上電瞬間I/O會(huì)處于什么狀態(tài)?
物聯(lián)網(wǎng)中常見的I/O擴(kuò)展電路設(shè)計(jì)方案_IIC I/O擴(kuò)展芯片

保護(hù)I/O模塊免受浪涌事件的影響

I/O模塊的主要作用有哪些
單片機(jī)io口的四種工作狀態(tài)
區(qū)域架構(gòu)和 MCU I/O 擴(kuò)展

MSP430 I/O口驅(qū)動(dòng)段式LCD設(shè)計(jì)說明

評(píng)論