STM32系列的MCU,一般都會設計一個SYSTICK的簡易型Timer,但又和其他Timer有什麼差別呢?
其實你可以把這個SYSTICK想成是一個24bit的簡單Timer,而STM32的Timer因為是多功能的Timer,有很多功能都需要靠Timer來產生。例如PWM或是Counter,這個是比較特別的地方。
其實你可以把這個SYSTICK想成是一個24bit的簡單Timer,而STM32的Timer因為是多功能的Timer,有很多功能都需要靠Timer來產生。例如PWM或是Counter,這個是比較特別的地方。
如果你有需要在此MCU使用RTOS的總統的話,一般都會建議使用此SYSTICK,因為當初就是把它規劃給RTOS使用。
使用SYSTICK也非常簡單,你只要照著上面做就行了。1000代表,1秒中會產生1000次中斷,也就是每1ms的頻率。
/* SysTick end of count event each 1ms */
RCC_GetClocksFreq(&RCC_Clocks);
SysTick_Config(RCC_Clocks.HCLK_Frequency /
1000);
1000);
有興趣可以看一下SysTick_Config()這個副程式操作的幾個暫存器。其實還滿容易理解的。
另外ST習慣把中斷都放在stm32f30x_it.c的檔案裡,而SysTick_Handler()就是SYSTICK產生中斷就會跳入的副程式。不知道各位讀者有沒有發現ST的所寫的範例註解不太一樣,其實它是可以套用「Doxygen」的一套程式使用,有興趣的話可以參照「http://www.stack.nl/~dimitri/doxygen/」。
下一章:I2C介紹
沒有留言:
張貼留言