滴答定时器的计数模式_【高手私藏】STM32学习笔记:SysTick滴答时钟
生活随笔
收集整理的這篇文章主要介紹了
滴答定时器的计数模式_【高手私藏】STM32学习笔记:SysTick滴答时钟
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天我們來說說SysTick定時器。SysTick定時器在從參考手冊中根本沒有介紹。我費了九牛二虎之力才在一個犄角格拉里找到SysTick定時器的英文版的說明。在Cotex-M3有介紹,為什么要找STM32的介紹,是因為功能設置上還有點區別。首先看一下SysTick定時器的作用,下面是Cotex-M3里的一段話:SysTick定時器被捆綁在NVIC中,用于產生SYSTICK異常(異常號:15)。在以前,大多操作系統需要一個硬件定時器來產生操作系統需要的滴答中斷,作為整個系統的時基。例如,為多個任務許以不同數目的時間片,確保沒有一個任務能霸占系統;或者把每個定時器周期的某個時間范圍賜予特定的任務等,還有操作系統提供的各種定時功能,都與這個滴答定時器有關。因此,需要一個定時器來產生周期性的中斷,而且最好還讓用戶程序不能隨意訪問它的寄存器,以維持操作系統“心跳”的節律。Cortex‐M3處理器內部包含了一個簡單的定時器。因為所有的CM3芯片都帶有這個定時器,軟件在不同CM3器件間的移植工作得以化簡。該定時器的時鐘源可以是內部時鐘(FCLK,CM3上的自由運行時鐘),或者是外部時鐘(CM3處理器上的STCLK信號)。不過,STCLK的具體來源則由芯片設計者決定,因此不同產品之間的時鐘頻率可能會大不相同,你需要檢視芯片的器件手冊來決定選擇什么作為時鐘源。知道我為什么找ST關于SysTick的說明了吧SysTick介紹下面介紹STM32中的SysTick。SysTick部分內容屬于NVIC控制部分,一共有4個寄存器,名稱和地址分別是:
STK_CSR,0xE000E010—控制寄存器
STK_LOAD,0xE000E014—重載寄存器
STK_VAL,0xE000E018—當前值寄存器
STK_CALRB,0xE000E01C—校準值寄存器
第0位:ENABLE,SysTick使能位(0:關閉Systick功能;1:開啟Systick功能)。
第1位:TICKINT,SysTick中斷使能位(0:關閉Systick中斷;1:開啟Systick中斷)。
第2位:CLKSOURCE,SysTick時鐘源選擇(0:使用HCLK/8 作為Systick時鐘;1:使用HCLK作為Systick時鐘)。
第3位:COUNTFLAG,SysTick計數比較標志,如果在上次讀取本寄存器后,SysTick 已經數到了0,則該位為1。如果讀取該位,該位將自動清零。
位31 NOREF:1=沒有外部參考時鐘(STCLK不可用),0=外部參考時鐘可用。
位30 SKEW:1=校準值不是準確的1ms,0=校準值是準確的1ms。
位[23:0] :Calibration value。
總結
以上是生活随笔為你收集整理的滴答定时器的计数模式_【高手私藏】STM32学习笔记:SysTick滴答时钟的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qq收不到oracle邮件,腾讯企业邮箱
- 下一篇: linux apache 跨域,解决ng