STM32F10xx時鐘系統框圖:時鐘是整個系統的脈搏
下圖是STM32F10xx時鐘系統的框圖,通過這個圖可以一目了然地看到各個部件時鐘產生的路徑,還可以很方便地計算出各部分的時鐘頻率。
STM32的四個時鐘源(HSI、HSE、LSI和LSE)也在圖中標出;圖中間的時鐘監視系統(CSS)是在很多ST7的單片機中就出現的安全設置。特別注意:圖的右邊,輸出定時器時鐘之前有一個乘法器,它的操作不是由程序控制的,是由硬件根據前一級的APB預分頻器的輸出自動選擇,當APB預分頻器的分頻因子為1時,這個乘法器無作用;當APB預分頻器的分頻因子大于1時,這個乘法器做倍頻操作,即將APB預分頻器輸出的頻率乘2,這樣可以保證定時器可以得到最高的72MHz時鐘脈沖。
STM32上很多管腳功能可以重新映射
STM32上有很多I/O口,也有很多的內置外設,為了節省引出管腳,這些內置外設都是與I/O口共用引出管腳,ST稱其為I/O管腳的復用功能,相信這點大家都很清楚,因為基本上所有單片機都是這么做的。但不知有多少人知道,很多復用功能的引出腳可以通過重映射,從不同的I/O管腳引出,即復用功能的引出腳位是可通過程序改變的。
這一功能的直接好處是,PCB電路板的設計人員可以在需要的情況下,不必把某些信號在板上繞一大圈完成聯接,方便了PCB的設計同時潛在地減少了信號的交叉干擾。復用功能引出腳的重映射功能所帶來的潛在好處是,在你不需要同時使用多個復用功能時,虛擬地增加復用功能的數量。例如,STM32上最多有3個USART接口,當你需要更多UART接口而又不需要同時使用它們時,可以通過這個重映射功能實現更多的UART接口。
下述復用功能的引出腳具有重映射功能:
- 晶體振蕩器的引腳在不接晶體時,可以作為普通I/O口
- CAN模塊
- JTAG調試接口
- 大部分定時器的引出接口
- 大部分USART的引出接口
- I2C1的引出接口
- SPI1的引出接口
詳細內容請看STM32的技術參考手冊。
請務必記住:如果使用了任意一種重映射功能,在初始化和使用之前,一定要打開AFIO時鐘。
下圖示出了部分復用功能引出腳的重映射結果:
【演示實例】一個在EK-STM32F板子上的RTC作為calender的例子
硬件連接:串口線連至板子的UART-0端口。超級終端設置為:
Bits Per seconds: 115200
Data bits: 8
Parity: none
Stop bits: 1
Flow control Hardware
板子第一次跑這個程序時,進入時間配置。
根據超級終端上的提示,一次輸入年,月,日,時,分,秒
(1月就輸入01,10月直接輸入10;同理3號就輸入03)
隨后當前的時間就顯示到了超級終端上,并且每秒刷新。
沒有斷電的情況下再跑這個程序,由于看到bake up區域有被設置過時間的標志,不再進入時間設置階段,而是直接到時間顯示間斷,在超級終端上,每秒刷新。
當然如果在EK-STM32F板子上將Vbat和電池相接,具體就是:將紅色的電源跳線帽中的從下往上數的第5個取下,從原來的水平放置改成豎直放置(和上面的VBAT相連)。就算斷電,只要再上電,看到back up區域中的記號,一樣直接進入時間顯示。因為斷電后,back up區域由電池供電,其中記錄的記號不會由于系統掉電而消失。
QQ圖片20160604095714.jpg (504.11 KB, 下載次數: 86)
下載附件
2016-6-6 18:44 上傳
|