STM32 CLK configuration

AHB  CLK = SYSCLK;

APB1 CLK = SYSCLK/2;

APB2 CLK = SYSCLK;

PLL CLK  = SYSCLK;

常用到的還有SysTick時鐘,由AHB時鐘分頻而來,要麼=AHB,要麼1/8AHB。

SysTick在uCOS操作系統中有着重要的作用,在操作系統中作爲定時模塊使用,其常用來產生一個準確的定時器中斷,是操作系統的“心臟”,可以用來做任務調度等工作。

通常將SysTick中斷的優先級設置爲最高,但要注意,其設置方法與庫函數的結構體初始化方法不同,而是需要使用core_M3.h中的NVIC_SetPriority()函數。

stm32的中的中斷可以做嵌套,理論上嵌套一共有4位控制,共有5中模式

(0)4位全爲調用優先級

(1)第一位爲搶佔式優先級,後三位爲調用優先級

(2)2 2

(3) 3 1

(4)4 0

搶佔式優先級用法:當一個低搶佔式優先級中斷正在執行時,如果有一個高搶佔式優先級的任務發生,那麼當前中斷任務會被中斷,轉而執行更高優先級的中斷,待高執行完後,再回頭執行原來的低優先級中斷服務程序。

調用優先級:只有當兩個中斷同時發生時,並且此時二者的搶佔式優先級一樣時,調用優先級高的中斷先執行。

數字越小,優先級越高。理論上一共有16中中斷優先級設定方法,但是一個stm32的所有引腳都可以配製成外部中斷。當程序中中斷個數多餘16個時,就一定存在兩個優先級設定情況是同一種的情況。

boot0  boot1引腳:用於設置stm32 的啓動方法。

boot0 boot1  啓動方式

0 0      FLASH

0 1 FLASH

1 0 系統bootloader

1 1 SRAM(通常用於調試程序)

當我們使用ISP下載程序的時候,應該把boot0 置1 boot0 置0

完了之後需要運行程序,還需要把boot0 置零以使其從flash啓動程序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章