[TOC] ![image](https://hackmd.io/_uploads/r1F5dVB2R.png) # 時鐘(Clock) - 時鐘的快慢決定數位電路的運行速度 - 對於通訊或是控制要求,講究輸出或輸入訊號的鮑率或者計時精確度,都由時鐘做決定 # 預除器(Prescaler) - 不同的電路功能可能需要不同的時鐘頻率,如果每個時鐘頻率都需要一個震盪器產生並不符合效益 - 預除器可以將一個時鐘源頻率向下切割,下面這張圖很好理解它的作用原理 ![image](https://hackmd.io/_uploads/SyHrerBnC.png) - 設置的輸出頻率即把原本頻率除以prescaler,譬如原本是16Mhz,prescaler設為8,則輸出的頻率則變為2MHz - # CubeMX時鐘配置 - STM的時鐘結構說明可見 野火-HAL庫實戰開發或手冊或[上網查查](https://blog.csdn.net/changxiaoyong8/article/details/128204355) - 最右側的輸出為MCU內不同類別對應的時鐘源,配置的主要目的是讓最右側的各個時鐘源符合需求,這些時鐘源溯及既往可以看到 : - APBx Prescaler - HCLK - AHB Prescaler - SYSCLK - 通常使SYSCLK或HCLK直接到最高速的 168 MHz,因此在更前面的System Clock Mux選擇用PLLCLK - 電路設計上只能有1、2、4、8...分頻 - 如果有顯示紅色代表設置不正確要注意 - # 時鐘源區別 - 除了一些明確標明用途的時鐘源(如Ethernet PTP clock),其他主要為APBx peripheral clock和APBx timer clock - APBx 為 總線名稱,不同的周邊設備或timer吃不同的總線,因此需要確認自己的需求應該調整哪個總線上的時鐘源! - 不同功能對應到的總線可以到rm0090手冊的 Table 1. STM32F4xx register boundary addresses 查詢 # STM 總線 - rm0090 2.3 Memory map -