久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> STM32 >> 瀏覽文章

STM32中SysTick在3.5固件庫中的應用

作者:真誠冰雪天涯   來源:不詳   點擊數:  更新時間:2014年07月27日   【字體:

一、SysTick
STM32內核中有一個系統定時器,它是一個24位遞減計數器。工作原理是系統時基定時器設定初值并使能后,每經過1個系統時鐘周期,計數值就減,當計數值減到0時,系統定時器會重新自動重裝初值,并繼續下一次計數,同時內部的COUNTFLAG標志位會置位。觸發中斷。
在很早的固件庫中,提供了很多函數,來對SysTick進行設置,但是到了3.5版本的標準固件庫中,移除了相關驅動函數,用戶必須調用CMSIS 定義的函數,其中CMSIS只提供了一個Systick設置的函數,替代了STM32原來有的所有的驅動函數,這樣做的目的,可能是簡化Systick 的設置,可是降低了用戶對SysTick的可控性。
在CMSIS中提供的函數是  SysTick_Config(uint32_t ticks); 該函數設置了自動重載入計數器(LOAD)的值,SysTick IRQ的優先級,復位了計數器(VAL)的值,開始計數并打開SysTick IRQ中斷。SysTick時鐘默認使用系統時鐘。
其中這個函數定義在Core_cm3.h中 ,源代碼如下所示:
   static __INLINE uint32_t SysTick_Config(uint32_t ticks)
 {
   if (ticks > SysTick_LOAD_RELOAD_Msk)  return (1);                                                                                              
   SysTick->LOAD  = (ticks & SysTick_LOAD_RELOAD_Msk) - 1;             
   NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);        
   SysTick->VAL   = 0;                                                
   SysTick->CTRL  = SysTick_CTRL_CLKSOURCE_Msk |
                    SysTick_CTRL_TICKINT_Msk   |
                    SysTick_CTRL_ENABLE_Msk;                          
   return (0);                                              
 }
從上面的函數中可以看出,這個函數把Systick的初值,中斷優先級,使能中斷,開啟定時器都完成了。大大簡化了程序。
其中ticks 代表的是初值。例如系統時鐘是72Mhz 那么要產生1ms的時基,那么我們可以這樣去寫。
SysTick_Config(SystemCoreClock/1000);  當然也可以寫成:SysTick_Config(72000);

關閉窗口

相關文章

主站蜘蛛池模板: 国产精品成人久久久久 | 在线中文字幕视频 | 中文字幕精品一区二区三区精品 | 亚洲欧美精品在线观看 | 九九热最新地址 | 日韩伦理一区二区 | 国产在线精品一区二区三区 | 成人福利网站 | 在线欧美亚洲 | 久久人人国产 | 人人玩人人干 | 99精品久久久国产一区二区三 | 免费的日批视频 | 日本一区二区三区免费观看 | 午夜激情视频在线 | 欧美三级三级三级爽爽爽 | 国产美女永久免费无遮挡 | 日韩福利在线 | 成人欧美| www.成人.com| 欧美一级在线观看 | 尤物在线精品视频 | 日韩成人一区 | 日日爱av| 精品国产一区二区三区四区在线 | 亚洲风情在线观看 | av一区二区三区 | 精品少妇一区二区三区在线播放 | 免费看91| 成人免费在线视频 | 日日操日日舔 | 久久精品成人 | 久久久一区二区三区 | 中文字幕亚洲一区 | 欧美一区二区三区在线观看 | 精品二区| 国产在线精品一区二区 | 91夜色在线观看 | 特级黄色毛片 | 久久综合影院 | 欧美综合久久久 |