娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

一、STM32的SysTick簡介

 

  SysTick是一個24位的系統(tǒng)節(jié)拍定時器system tick timer,SysTick,具有自動重載和溢出中斷功能,所有基于Cortex_M3處理器微控制器都可以由這個定時器獲得一定的時間間隔。


systick的作用:

  

在單任務(wù)引用程序中,因為其架構(gòu)就決定了它執(zhí)行任務(wù)的串行性,這就引出一個問題:當(dāng)某個任務(wù)出現(xiàn)問題時,就會牽連到后續(xù)的任務(wù),進(jìn)而導(dǎo)致整個系統(tǒng)崩潰。要解決這個問題,可以使用實時操作系統(tǒng)(RTOS).


  因為RTOS以并行的架構(gòu)處理任務(wù),單一任務(wù)的崩潰并不會牽連到整個系統(tǒng)。這樣用戶出于可靠性的考慮可能就會基于RTOS來設(shè)計自己的應(yīng)用程序。這樣SYSTICK存在的意義就是提供必要的時鐘節(jié)拍,為RTOS的任務(wù)調(diào)度提供一個有節(jié)奏的“心跳”。


  微控制器的定時器資源一般比較豐富,比如STM32存在8個定時器,為啥還要再提供一個SYSTICK?原因就是所有基于ARM Cortex_M3內(nèi)核的控制器都帶有SysTick定時器,這樣就方便了程序在不同的器件之間的移植。而使用RTOS的第一項工作往往就是將其移植到開發(fā)人員的硬件平臺上,由于SYSTICK的存在無疑降低了移植的難度。


    SysTick定時器除了能服務(wù)于操作系統(tǒng)之外,還能用于其它目的:如作為一個鬧鈴,用于測量時間等。要注意的是,當(dāng)處理器在調(diào)試期間被喊停(halt)時,則SysTick定時器亦將暫停運作。


systick的時鐘選擇:



二、SYSTICK的寄存器


三、SYSTICK的配置和函數(shù)解析


SysTick定時器的使用主要有HAL_SYSTICK_Config()函數(shù)和HAL_SYSTICK_CLKSourceConfig()函數(shù)。如下,


    /**Configure the Systick interrupt time 

    */

  HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);// 設(shè)置定時時間

 

    /**Configure the Systick 

    */

  HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);//選擇SYSTICK時鐘源,

  /* SysTick_IRQn interrupt configuration */

  HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);//設(shè)定優(yōu)先級


 

Systick定時時間的設(shè)定:


重裝載值=systick 時鐘頻率(Hz)X想要的定時時間(S)


如:時鐘頻率為:AHB的8分頻;AHB=72MHz那么systick的時鐘頻率為72/8MHz=9MHz;要定時1秒,則


重裝載值=9000000X1=9000000;


定時10毫秒


重狀態(tài)值=9000000X0.01=90000


//兩個時鐘源的定義

#define SYSTICK_CLKSOURCE_HCLK_DIV8    (0x00000000U)

#define SYSTICK_CLKSOURCE_HCLK         (0x00000004U)

uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb)

{

   return SysTick_Config(TicksNumb);

}

  \brief   System Tick Configuration

  \details Initializes the System Timer and its interrupt, and starts the System Tick Timer.

           Counter is in free running mode to generate periodic interrupts.

  \param [in]  ticks  Number of ticks between two interrupts.

  \return          0  Function succeeded.//返回0,配置成功

  \return          1  Function failed.//返回1,失敗

  \note    When the variable __Vendor_SysTickConfig is set to 1, then the

           function SysTick_Config is not included. In this case, the file device.h

           must contain a vendor-specific implementation of this function.

 */

__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)

{

  if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)//超過最大定時值,返回1,SysTick_LOAD_RELOAD_Msk值為2的24方-1;即0xFFFFFF

 

  {

    return (1UL);                                                   /* Reload value impossible */

  }

 

  SysTick->LOAD  = (uint32_t)(ticks - 1UL);                         /* set reload register */

  NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */

  SysTick->VAL   = 0UL;    //SysTick Current Value Register,設(shè)為0   /* Load the SysTick Counter Value */

  SysTick->CTRL  = SysTick_CTRL_CLKSOURCE_Msk |

                   SysTick_CTRL_TICKINT_Msk   |

                   SysTick_CTRL_ENABLE_Msk;                         /* Enable SysTick IRQ and SysTick Timer */

  return (0UL);                                                     /* Function successful */

}

SYSTICK內(nèi)部寄存器的結(jié)構(gòu)體定義,和上面圖中的寄存器一一對應(yīng)。


typedef struct

{

  __IOM uint32_t CTRL;                   /*!< Offset: 0x000 (R/W)  SysTick Control and Status Register */

  __IOM uint32_t LOAD;                   /*!< Offset: 0x004 (R/W)  SysTick Reload Value Register */

  __IOM uint32_t VAL;                    /*!< Offset: 0x008 (R/W)  SysTick Current Value Register */

  __IM  uint32_t CALIB;                  /*!< Offset: 0x00C (R/ )  SysTick Calibration Register */

} SysTick_Type;

SysTick定時器的時鐘源選擇函數(shù)如下:


void HAL_SYSTICK_CLKSourceConfig(uint32_t CLKSource)

{

  /* Check the parameters */

  assert_param(IS_SYSTICK_CLK_SOURCE(CLKSource));

  if (CLKSource == SYSTICK_CLKSOURCE_HCLK)

  {

    SysTick->CTRL |= SYSTICK_CLKSOURCE_HCLK;//見上面的宏定義,(0x00000004U),即把CLKSOURCE控制寄存器位置1;

  }

  else

  {

    SysTick->CTRL &= ~SYSTICK_CLKSOURCE_HCLK;//把CLKSOURCE控制寄存器位置0;

 

  }

}

systick定時器的處理函數(shù)為空,并未執(zhí)行任何動作,如下:


void SysTick_Handler(void)

{

  /* USER CODE BEGIN SysTick_IRQn 0 */

 

  /* USER CODE END SysTick_IRQn 0 */

  HAL_IncTick();

  HAL_SYSTICK_IRQHandler();

  /* USER CODE BEGIN SysTick_IRQn 1 */


  /* USER CODE END SysTick_IRQn 1 */

}

void HAL_SYSTICK_IRQHandler(void)

{

  HAL_SYSTICK_Callback();

}

 


__weak void HAL_SYSTICK_Callback(void)

{

  /* NOTE : This function Should not be modified, when the callback is needed,

            the HAL_SYSTICK_Callback could be implemented in the user file

   */

}


注意:當(dāng)主芯片需使用SLEEP模式時,SYSTICK的異常請求會喚醒SLEEP模式,進(jìn)入SLEEP模式前需要把TICKINT控制器置為0。



HAL_SuspendTick();//把TICKINT控制寄存器置0;

HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON,PWR_SLEEPENTRY_WFI);

HAL_ResumeTick();//把TICKINT控制寄存器置1;

__weak void HAL_SuspendTick(void)

{

  /* Disable SysTick Interrupt */

  CLEAR_BIT(SysTick->CTRL,SysTick_CTRL_TICKINT_Msk);//置0

}

__weak void HAL_ResumeTick(void)

{

  /* Enable SysTick Interrupt */

  SET_BIT(SysTick->CTRL,SysTick_CTRL_TICKINT_Msk);//置1

}


關(guān)鍵字:STM32  SysTick  使用方法 引用地址:STM32—SysTick使用方法

上一篇:STM32的系統(tǒng)滴答定時器(Systick)
下一篇:SysTick功能總結(jié)

推薦閱讀

機(jī)器人行業(yè)現(xiàn)在開始處于洗牌期,對于機(jī)器人市場的下一步發(fā)展,很難作出判斷,這里面有太多需要修正的地方,經(jīng)過2018年機(jī)器人領(lǐng)域的不斷發(fā)展,到歲末年初,我們能感受到什么呢?今年機(jī)器人的增長大幅下降,這對于市場來說是一個比較好的時機(jī),給狂奔了三年多的機(jī)器人一個停下來喘息的機(jī)會,稍作調(diào)整,這是一個很現(xiàn)實的問題,比較市場亂象與競爭迸發(fā),遲早是...
今年7月,日本對韓國半導(dǎo)體原材料采取了出口管制措施,在那之后,日韓兩國關(guān)系陷入緊張狀態(tài)。不過,日韓關(guān)系在近日又有了好轉(zhuǎn)的跡象:日本經(jīng)濟(jì)產(chǎn)業(yè)省12月20日宣布,放寬部分半導(dǎo)體材料對韓出口管制…… 據(jù)日媒報道,日本經(jīng)濟(jì)產(chǎn)業(yè)省20日部分放寬了三種半導(dǎo)體材料對韓出口管制。關(guān)于涂覆在基板上的感光劑光刻膠,日本針對特定企業(yè)間的交易調(diào)整了運用:能夠獲...
一轉(zhuǎn)眼,又到了12月中下旬,2020年快要結(jié)束了。今年上半年,中國汽車市場因為疫情的緣故受到了巨大的沖擊,銷量直跌谷底。不過,通過國民群眾的一致努力,從4月份開始,全國開始進(jìn)入經(jīng)濟(jì)恢復(fù)的階段。在疫情后反彈的消費需求也讓汽車市場快速恢復(fù)活力,迎來一波銷售熱潮。眾所周知,目前在國內(nèi)汽車市場中,還是有很多人對國產(chǎn)品牌不信任,究其原因,無外乎...
RCC是reset clock control的簡稱(即復(fù)位和時鐘控制器),本文將詳細(xì)介紹時鐘樹的構(gòu)成,通過理解時鐘樹我們可以更加的了解STM32的所有時鐘來源和他們之間的關(guān)系。如下圖,是STM32的時鐘樹,非常重要,我們將對每個時鐘進(jìn)行講解,讀者理解后時鐘樹看起來將會變得很簡單。建議保存下圖,邊閱讀本文邊對照時鐘樹,可以達(dá)到事半功倍的效果。1.HSE高速外部時鐘H...

史海拾趣

問答坊 | AI 解惑

6kV&#183;A逆變器滯環(huán)調(diào)制與單極性SPWM倍頻調(diào)制的比較

來源:電源技術(shù)應(yīng)用  作者:梅 燁 石健將 何湘寧摘要:分析了電流型滯環(huán)調(diào)制和單極性SPWM倍頻調(diào)制逆變器的原理,然后討論了兩種調(diào)制方式下輸出濾波器的設(shè)計,并在此基礎(chǔ)上制作了兩臺6kV·A逆變器樣機(jī)并給出了輸出波形和輸出THD。通過理論分析 ...…

查看全部問答∨

C語言編譯全過程

編譯的概念:編譯程序讀取源程序(字符流),對之進(jìn)行詞法和語法的分析,將高級語言指令轉(zhuǎn)換為功能等效的匯編代 碼,再由匯編程序轉(zhuǎn)換為機(jī)器語言,并且按照操作系統(tǒng)對可執(zhí)行文件格式的要求鏈接生成可執(zhí)行程序。     編譯的完整過程:C ...…

查看全部問答∨

三洋鋰電池評測報告2400mAh

三洋鋰電池評測報告2400mAh…

查看全部問答∨

手機(jī)一般怎么取得internet的數(shù)據(jù)?

手機(jī)一般怎么取得internet的數(shù)據(jù)? 比如我看很多手機(jī)導(dǎo)航地圖上的天氣預(yù)報信息等?? 是否必須建一個WAP之類的網(wǎng)站才行?還是有一個基于什么協(xié)義的接口?還是與地圖數(shù)據(jù)放在一起讓導(dǎo)航引擎去檢索???…

查看全部問答∨

CDMA撥號時PPP協(xié)商認(rèn)證失敗的問題

問題描述 硬件環(huán)境:Android平臺+CDMA modem; 操作步驟:先設(shè)置APN為uniwap,再進(jìn)行撥號ATD#777,然后開始PPP協(xié)商; 相關(guān)設(shè)置:pap-secrets中內(nèi)容:CARD PDSN CARD *         chap-secrets中內(nèi)容:CARD P ...…

查看全部問答∨

wince動態(tài)加載字體

[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\FontPath]     "FontPath"="\\\\NandFlash" [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\FontLink\\SystemLink]     "Tahoma"="\\\\NandFlash\\\\simsun.ttc,NSi ...…

查看全部問答∨

WINCE4.2下TL16554接收不到字符??

WINCE4.2下使用TL16554發(fā)送字符成功,但有時會出現(xiàn):我發(fā)送1,串口調(diào)試工具顯示的是F1。 但是接收卻沒有任何反應(yīng)。 我的注冊表: ;16c554 base=0x28000000 [HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\UART3]    "DeviceArrayIndex ...…

查看全部問答∨

看MCBST32板原理圖,

                                 輸出點燈是通過244緩沖后在高電平驅(qū)動點LED,為什么不IO口直接低電平驅(qū)動d點LED?&nbsp;有什么特別可以說明的嗎 ...…

查看全部問答∨

求救STM32使用庫串口接收中斷打死也進(jìn)不去

附上部份代碼. USART_InitTypeDef USART_InitStructure; RCC_Configuration(); GPIO_Configuration(); NVIC_Configuration(); LcdShow_Init(); //StepperMotorInit(); // GPIO_Write(GPIOC,GPIO_ReadOutputData(GPIOC)|LED_var); /* ...…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 石嘴山市| 景德镇市| 武穴市| 福建省| 长汀县| 深水埗区| 三亚市| 阿鲁科尔沁旗| 台北市| 突泉县| 全州县| 正定县| 绵阳市| 五寨县| 丽水市| 新龙县| 乌什县| 德惠市| 政和县| 翁源县| 江口县| 台南县| 朝阳区| 汝南县| 班戈县| 环江| 赤峰市| 八宿县| 资阳市| 桑日县| 区。| 扶余县| 涞源县| 太仆寺旗| 诸城市| 十堰市| 衢州市| 南昌市| 平陆县| 玉屏| 彭州市|