91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SysTick與HAL_Delay的關(guān)系與注意事項

CHANBAEK ? 來源:頭條號秋天滴風 ? 作者:頭條號秋天滴風 ? 2023-04-21 11:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

SysTick與HAL_Delay的關(guān)系與注意事項

本文將介紹SysTick與HAL_Delay()函數(shù)之間的關(guān)系,以及使用HAL_Delay()函數(shù)的注意事項;

一.HAL_Delay()函數(shù)實現(xiàn)的原理、與SysTick的關(guān)系

下面我們先看一下HAL_Delay函數(shù)的源碼

__weak void HAL_Delay(uint32_t Delay)
{
  uint32_t tickstart = HAL_GetTick();
  uint32_t wait = Delay;

  /* Add a freq to guarantee minimum wait */
  if (wait < HAL_MAX_DELAY)
  {
    wait += (uint32_t)(uwTickFreq);
  }

  while((HAL_GetTick() - tickstart) < wait)
  {
  }
}

從源碼可以看出該函數(shù)將我們傳入的參數(shù)與HAL_GetTick()-tickstart比較,若不滿足條件則退出while、若滿足

接下來我們追一下HAL_GetTick()的源代碼:

__weak uint32_t HAL_GetTick(void)
{
return uwTick;
}

接著追一下uwTick ,發(fā)現(xiàn)在下面這個函數(shù)中對它的值進行了操作:

__weak void HAL_IncTick(void)
{
uwTick += uwTickFreq;
}

接著追一下uwTickFreq 發(fā)現(xiàn)uwTickFreq = 1,接著追一下HAL_IncTick(void)函數(shù):

發(fā)現(xiàn)HAL_IncTick(void)函數(shù)是在SysTick的中斷回調(diào)函數(shù)內(nèi)調(diào)用的;

綜上可知HAL_Delay與SysTick的關(guān)系:HAL_Delay函數(shù)的執(zhí)行、最終是依賴于SysTick的每觸發(fā)一次SysTick的中斷耗時1ms,HAL_GetTick()-tickstart會增大1、知道差值等于HAL_Delay的傳入?yún)?shù)。

二、由SysTick與HAL_Delay之間的關(guān)系可知,我們在使用HAL_Delay的時候需要注意:當在中斷中使用了HAL_Delay函數(shù),則該中斷的搶占優(yōu)先級必須低于SysTick中斷的優(yōu)先級,否則會導致SysTick中斷不能搶占該中斷函數(shù)、最終導致HAL_GetTick()-tickstart的值不會變,從而陷入死循環(huán)中。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    917

    瀏覽量

    43751
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    685

    瀏覽量

    31312
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4417

    瀏覽量

    67494
  • Systick
    +關(guān)注

    關(guān)注

    0

    文章

    67

    瀏覽量

    13967
  • HAL
    HAL
    +關(guān)注

    關(guān)注

    2

    文章

    75

    瀏覽量

    13664
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    請問CW32F030的硬件注意事項有哪些?

    CW32F030的硬件注意事項有哪些
    發(fā)表于 12-25 08:20

    請問IAP功能升級流程中有哪些注意事項?

    IAP 功能升級流程中有哪些注意事項?
    發(fā)表于 12-23 07:55

    迅為RK3588開發(fā)板Android系統(tǒng)燒寫及注意事項

    迅為RK3588開發(fā)板Android系統(tǒng)燒寫及注意事項
    的頭像 發(fā)表于 12-03 15:17 ?7153次閱讀
    迅為RK3588開發(fā)板Android系統(tǒng)燒寫及<b class='flag-5'>注意事項</b>

    驅(qū)動板PCB布線的注意事項

    PCB Layout 注意事項 1)布局注意事項: ●● 整體布局遵循功率回路與小信號控制回路分開布局原則,功率部分和控制部分的 GND 分開回流到輸入 GND。 ●● 芯片的放置方向優(yōu)先考慮驅(qū)動
    發(fā)表于 12-02 07:40

    CW32F030在使用中的注意事項有哪些?

    CW32F030在使用中的注意事項有哪些?
    發(fā)表于 11-18 06:20

    在rtthread的main函數(shù)里用HAL_Delay函數(shù)不起作用是哪里的問題?

    在rtthread的main函數(shù)里用HAL_Delay函數(shù)無效,我設置延時500ms打印一次,但是實際上,一秒打印了幾百次,很顯然是HAL_Delay出現(xiàn)了問題。用RT_thread_mdelay
    發(fā)表于 09-15 07:53

    emWin AppWizard 開發(fā)注意事項有哪些?

    emWin AppWizard 開發(fā)注意事項
    發(fā)表于 09-04 06:18

    別讓這些細節(jié)毀了PCBA!焊接注意事項清單

    一站式PCBA加工廠家今天為大家講講PCBA加工中電子元器件焊接注意事項有哪些?PCBA加工中電子元器件焊接注意事項。 電子元器件焊接關(guān)鍵注意事項 在PCBA加工中,焊接工藝直接影響電路板的可靠性
    的頭像 發(fā)表于 07-23 09:26 ?1193次閱讀

    美國Odyssey奧德賽電池充電注意事項全解析

    Odyssey奧德賽電池充電注意事項全解析 奧德賽電池作為高性能的深循環(huán)鉛酸電池,廣泛應用于汽車啟動、摩托車、船舶以及備用電源系統(tǒng)中。正確的充電方法不僅能夠延長電池壽命,還能保障其性能穩(wěn)定發(fā)揮
    的頭像 發(fā)表于 05-19 16:31 ?1086次閱讀
    美國Odyssey奧德賽電池充電<b class='flag-5'>注意事項</b>全解析

    IGBT器件的防靜電注意事項

    IGBT作為功率半導體器件,對靜電極為敏感。我將從其靜電敏感性原理入手,詳細闡述使用過程中防靜電的具體注意事項與防護措施,確保其安全穩(wěn)定運行。
    的頭像 發(fā)表于 05-15 14:55 ?1800次閱讀

    設置射頻網(wǎng)絡分析儀的測試條件有哪些注意事項

    射頻網(wǎng)絡分析儀(VNA)的測試條件設置直接影響測量結(jié)果的準確性和可靠性。以下從儀器配置、被測器件(DUT)特性、環(huán)境干擾、校準與驗證四個維度,系統(tǒng)梳理關(guān)鍵注意事項及解決方案。一、儀器配置與參數(shù)設置
    發(fā)表于 05-06 16:02

    錐齒輪減速機的使用安裝和維護維修注意事項

    錐齒輪減速機的使用、安裝和維護維修注意事項涵蓋了多個方面,以下是對這些注意事項的詳細歸納: 一、使用注意事項 1. 確認規(guī)格與設計相符:在使用減速機前,請先行確認購買的規(guī)格與設計規(guī)格是否相符。 2.
    的頭像 發(fā)表于 04-21 18:13 ?1259次閱讀
    錐齒輪減速機的使用安裝和維護維修<b class='flag-5'>注意事項</b>

    掃描電鏡的日常維護有哪些注意事項

    掃描電鏡日常維護的注意事項。
    的頭像 發(fā)表于 03-24 11:38 ?1166次閱讀
    掃描電鏡的日常維護有哪些<b class='flag-5'>注意事項</b>?

    依托raksmart服務器在多種系統(tǒng)上本地部署deepseek注意事項

    在RAKsmart服務器上本地部署DeepSeek時,需根據(jù)不同的操作系統(tǒng)和環(huán)境做好全面適配。以下是關(guān)鍵注意事項及分步指南,主機推薦小編為您整理發(fā)布依托raksmart服務器在多種系統(tǒng)上本地部署deepseek注意事項
    的頭像 發(fā)表于 03-19 11:25 ?888次閱讀

    STM32C031C6在按鍵中斷處理程序中使用HAL_Delay()延時函數(shù),程序則無法運行怎么解決?

    測試STM32C031C6開發(fā)板的長短按鍵,在按鍵中斷處理程序中使用HAL_Delay()延時函數(shù),程序則無法運行,類似進入了死循環(huán),于是則添加了延時函數(shù)如下: /[i
    發(fā)表于 03-07 06:50