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啓動程序。