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