国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32使用定時(shí)器實(shí)現(xiàn)微秒(us)級(jí)延時(shí)

這篇具有很好參考價(jià)值的文章主要介紹了STM32使用定時(shí)器實(shí)現(xiàn)微秒(us)級(jí)延時(shí)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

引言

目前開發(fā)STM32普遍使用HAL庫,但 HAL 庫封裝的延時(shí)函數(shù)目前僅支持 ms 級(jí)別的延時(shí),日常很多情況下會(huì)用到 us 延時(shí),特別是一些傳感器的數(shù)據(jù)讀取過程,對(duì)時(shí)序要求比較嚴(yán)格,us 延時(shí)必不可少,因此我們今天來介紹STM32如何使用定時(shí)器實(shí)現(xiàn)微秒(us)級(jí)延時(shí)。

前期準(zhǔn)備

  1. Keil 5
  2. STM32CubeMX
  3. STM32F407MCU

介紹

系統(tǒng)時(shí)鐘

可通過多個(gè)預(yù)分頻器配置 AHB 頻率、高速 APB (APB2) 和低速 APB (APB1)。AHB 域的最 大頻率為 168 MHz。高速 APB2 域的最大允許頻率為 84 MHz。低速 APB1 域的最大允許頻 率為 42 MHz。
STM32使用定時(shí)器實(shí)現(xiàn)微秒(us)級(jí)延時(shí),STM32入門到精通(嵌入式開發(fā)基礎(chǔ)),stm32,單片機(jī),嵌入式硬件

定時(shí)器時(shí)鐘

STM32的定時(shí)器大致分為三種:基本定時(shí)器、通用定時(shí)器和高級(jí)定時(shí)器。各個(gè)定時(shí)器和其時(shí)鐘源的對(duì)應(yīng)關(guān)系為:
STM32使用定時(shí)器實(shí)現(xiàn)微秒(us)級(jí)延時(shí),STM32入門到精通(嵌入式開發(fā)基礎(chǔ)),stm32,單片機(jī),嵌入式硬件
其中,TIM1和TIM8是高級(jí)定時(shí)器;TIM2-TIM5、TIM9-TIM14是通用定時(shí)器;TIM6和TIM7為基本定時(shí)器。

  • 高級(jí)控制定時(shí)器(TIM1 和 TIM8)包含一個(gè) 16 位自動(dòng)重載計(jì)數(shù)器,該計(jì)數(shù)器由可編程預(yù)分頻器驅(qū)動(dòng)。此類定時(shí)器可用于各種用途,包括測(cè)量輸入信號(hào)的脈沖寬度(輸入捕獲),或者生成輸出波形(輸出比較、PWM 和帶死區(qū)插入的互補(bǔ) PWM)。使用定時(shí)器預(yù)分頻器和 RCC 時(shí)鐘控制器預(yù)分頻器,可將脈沖寬度和波形周期從幾微秒調(diào)制 到幾毫秒。
  • 通用定時(shí)器包含一個(gè) 16 位或 32 位自動(dòng)重載計(jì)數(shù)器,該計(jì)數(shù)器由可編程預(yù)分頻器驅(qū)動(dòng)。它們可用于多種用途,包括測(cè)量輸入信號(hào)的脈沖寬度(輸入捕獲)或生成輸出波形(輸出比較和 PWM)。使用定時(shí)器預(yù)分頻器和 RCC 時(shí)鐘控制器預(yù)分頻器,可將脈沖寬度和波形周期從幾微秒調(diào)制 到幾毫秒。
  • TIM9 到 TIM14 通用定時(shí)器包含一個(gè) 16 位自動(dòng)重載計(jì)數(shù)器,該計(jì)數(shù)器由可編程預(yù)分頻器 驅(qū)動(dòng)。它們可用于多種用途,包括測(cè)量輸入信號(hào)的脈沖寬度(輸入捕獲),或者生成輸出波形(輸出比較、PWM)。使用定時(shí)器預(yù)分頻器和 RCC 時(shí)鐘控制器預(yù)分頻器,可將脈沖寬度和波形周期從幾微秒調(diào)制到幾毫秒。
  • 基本定時(shí)器 TIM6 和 TIM7 包含一個(gè) 16 位自動(dòng)重載計(jì)數(shù)器,該計(jì)數(shù)器由可編程預(yù)分頻器驅(qū)動(dòng)。此類定時(shí)器不僅可用作通用定時(shí)器以生成時(shí)基,還可以專門用于驅(qū)動(dòng)數(shù)模轉(zhuǎn)換器 (DAC)。實(shí) 際上,此類定時(shí)器內(nèi)部連接到 DAC 并能夠通過其觸發(fā)輸出驅(qū)動(dòng) DAC。

項(xiàng)目

項(xiàng)目介紹

實(shí)現(xiàn)一個(gè)us級(jí)延時(shí)

STM32CubeMX

  1. 配置時(shí)鐘
    STM32使用定時(shí)器實(shí)現(xiàn)微秒(us)級(jí)延時(shí),STM32入門到精通(嵌入式開發(fā)基礎(chǔ)),stm32,單片機(jī),嵌入式硬件

  2. 配置定時(shí)器
    STM32使用定時(shí)器實(shí)現(xiàn)微秒(us)級(jí)延時(shí),STM32入門到精通(嵌入式開發(fā)基礎(chǔ)),stm32,單片機(jī),嵌入式硬件
    定時(shí)器頻率為 =TIMxCLK/(TIM_Prescaler+1)。定時(shí)器按照此頻率計(jì)數(shù),累計(jì) TIM_Period 個(gè)后產(chǎn)生一個(gè)更新或者中斷。

程序

定時(shí)器相關(guān)配置程序都由STM32CubeMX幫助我們生成了,我們主要來編寫一下微秒級(jí)延時(shí)函數(shù)。

void delay_us(uint32_t us)
{
	// Set timer period for desired delay in microseconds
  __HAL_TIM_SET_AUTORELOAD(&htim2, us - 1);//定時(shí)器響應(yīng)時(shí)間為period*定時(shí)器頻率
	HAL_TIM_Base_Start(&htim2);//start the timer
	//通過輪詢的方式等待定時(shí)器的更新事件
	//當(dāng)定時(shí)器溢出并計(jì)數(shù)器更新時(shí),TIM_FLAG_UPDATE標(biāo)志會(huì)被置位。
	while(__HAL_TIM_GET_FLAG(&htim2,TIM_FLAG_UPDATE)==RESET);
	__HAL_TIM_CLEAR_FLAG(&htim2,TIM_FLAG_UPDATE);//清楚更新標(biāo)志位
		HAL_TIM_Base_Stop(&htim2);//Stop the timer
}

上述程序首先通過__HAL_TIM_SET_AUTORELOAD設(shè)定延時(shí)周期,之后打開定時(shí)器,等待事件標(biāo)志位更新后關(guān)閉定時(shí)器。文章來源地址http://www.zghlxwxcb.cn/news/detail-663184.html

到了這里,關(guān)于STM32使用定時(shí)器實(shí)現(xiàn)微秒(us)級(jí)延時(shí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【STM32筆記】STM32的定時(shí)器開發(fā)基礎(chǔ)(二)(基于STM32CubeMX實(shí)現(xiàn)定時(shí)器中斷)

    【STM32筆記】STM32的定時(shí)器開發(fā)基礎(chǔ)(二)(基于STM32CubeMX實(shí)現(xiàn)定時(shí)器中斷)

    ? 傳統(tǒng)STM32外部中斷 的設(shè)計(jì)步驟: ?(1)將GPIO初始化為輸入端口。 ?(2)配置相關(guān)I/O引腳與中斷線的映射關(guān)系。 ?(3)設(shè)置該I/O引腳對(duì)印的中斷觸發(fā)條件。 ?(4)配置NVIC,并使能中斷。 ?(5)編寫中斷服務(wù)函數(shù)。 ? 基于STM32CubeMX的外部中斷 設(shè)計(jì)步驟 ?(1)在STM3

    2024年02月20日
    瀏覽(98)
  • STM32定時(shí)器使用計(jì)算

    一、使用例程代碼: 二、定時(shí)時(shí)間計(jì)算:

    2024年02月12日
    瀏覽(20)
  • STM32通用定時(shí)器的使用

    (1)使能定時(shí)器時(shí)鐘 本章定時(shí)器實(shí)驗(yàn),我們使用的是通用定時(shí)器 TIM4,我們知道 TIM4 是掛接在 APB1 總線上的,所以可以使用 APB1 總線時(shí)鐘使能函數(shù)來使能 TIM4 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);//使能 TIM4 時(shí)鐘 (2)初始化定時(shí)器參數(shù),包含自動(dòng)重裝值,分頻系數(shù),計(jì)數(shù)方式

    2024年02月10日
    瀏覽(19)
  • STM32定時(shí)器實(shí)現(xiàn)紅外接收與解碼

    STM32定時(shí)器實(shí)現(xiàn)紅外接收與解碼

    ?????????紅外遙控是一種比較常用的通訊方式,目前紅外遙控的編碼方式中,應(yīng)用比較廣泛的是NEC協(xié)議。NEC協(xié)議的特點(diǎn)如下: 載波頻率為 38KHz 8 位地址和 8位指令長(zhǎng)度 地址和命令2次傳輸(確??煽啃裕?PWM 脈沖位置調(diào)制,以發(fā)射紅外載波的占空比代表“0”和“1” ???

    2024年02月03日
    瀏覽(16)
  • STM32定時(shí)器中斷的使用示例

    STM32定時(shí)器中斷的使用示例

    上一篇博客實(shí)現(xiàn)了定時(shí)器輸出pwm,這篇接著上次的工程,在上次的工程上做簡(jiǎn)單的配置即可 硬件使用的是stm32h750vbt6; 軟件用到了stm32cubemx和keil5; 勾選打開dma3的中斷 在main.c中相應(yīng)位置添加以下代碼 MAIN函數(shù)中: 這一句很重要,開啟定時(shí)器計(jì)數(shù) 可以看到在每次TM3溢出后觸發(fā)

    2024年02月16日
    瀏覽(24)
  • 【學(xué)習(xí)記錄】STM32利用定時(shí)器中斷實(shí)現(xiàn)定時(shí)閃爍指示燈

    【學(xué)習(xí)記錄】STM32利用定時(shí)器中斷實(shí)現(xiàn)定時(shí)閃爍指示燈

    任務(wù):定時(shí)閃爍指示燈 任務(wù)目標(biāo): 掌握 CubeMX 軟件配置定時(shí)器實(shí)現(xiàn)定時(shí)功能的方法。 任務(wù)內(nèi)容: 控制開發(fā)板上的指示燈LED每隔1s閃爍。 任務(wù)實(shí)現(xiàn): 使用的STM32芯片是STM32F407ZET6 第一步:設(shè)置高速時(shí)鐘,設(shè)置LED 第二步:配置TIM10時(shí)鐘為100MHz,故可以設(shè)置預(yù)分頻系數(shù)PSC為9999,自

    2024年02月05日
    瀏覽(25)
  • 【MT32F006】MT32F006之定時(shí)器延時(shí)

    【MT32F006】MT32F006之定時(shí)器延時(shí)

    本文最后修改時(shí)間:2023年03月30日 一、本節(jié)簡(jiǎn)介 本文介紹如何使用MT32F006的定時(shí)器做us、ms級(jí)的延時(shí)。 二、實(shí)驗(yàn)平臺(tái) 庫版本:V1.0.0 編譯軟件:MDK5.37 硬件平臺(tái):MT32F006開發(fā)板(主芯片MT32F006) 仿真器:JLINK 三、版權(quán)聲明 1)作者:甜甜的大香瓜 2)聲明:喝水不忘挖井人,轉(zhuǎn)載

    2024年02月12日
    瀏覽(20)
  • stm32的學(xué)習(xí)——SysTick定時(shí)器的使用

    stm32的學(xué)習(xí)——SysTick定時(shí)器的使用

    SysTick定時(shí)器也稱為滴答定時(shí)器,SysTick定時(shí)器是內(nèi)核中的一個(gè)外設(shè),內(nèi)嵌在NVIC(嵌套向量中斷控制器)里面,在cortex M3、M4中都存在,很方便用戶移植。 雖然我用的是cortex M4的內(nèi)核,但是他的內(nèi)核文檔在這方面和Cortex M3的相似。 所以我這里參考了M3的內(nèi)核中文文檔。M3和M4內(nèi)核

    2024年02月04日
    瀏覽(22)
  • STM32使用CubeMx配置定時(shí)器輸出PWM

    STM32使用CubeMx配置定時(shí)器輸出PWM

    ????????項(xiàng)目中經(jīng)常使用到STM32來輸出PWM,每次配置過后過不了多久就會(huì)忘記,稍微需要對(duì)配置做出修改時(shí)都要翻很久的手冊(cè),所以決定結(jié)合實(shí)例把PWM配置的詳細(xì)步驟記錄下來,這樣在下次配置時(shí)可以很快的撿起來。 ????????本文檔的行文結(jié)構(gòu)如下,首先,說明實(shí)際需

    2024年02月03日
    瀏覽(27)
  • STM32使用高級(jí)定時(shí)器輸出互補(bǔ)pwm波

    STM32使用高級(jí)定時(shí)器輸出互補(bǔ)pwm波

    最近做的一個(gè)項(xiàng)目用到stm32,網(wǎng)上查了很多資料,也踩了很多坑,這里記錄一下配置的步驟和說明 硬件使用的是stm32h750vbt6; 軟件用到了stm32cubemx和keil5; 打開Debug模式方便調(diào)試,可以忽略,不影響代碼運(yùn)行 在用cube配置時(shí)鐘源時(shí),有下面三個(gè)選項(xiàng) Disable(禁用) BYPASS Clock Sou

    2024年02月16日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包