国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

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

發(fā)布者:RadiantEyes最新更新時(shí)間:2024-09-06 來(lái)源: elecfans關(guān)鍵字:STM32  定時(shí)器 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

在STM32微控制器中,可以使用定時(shí)器實(shí)現(xiàn)微秒級(jí)延時(shí)。具體來(lái)說(shuō),可以使用定時(shí)器的計(jì)數(shù)器和自動(dòng)重裝載寄存器來(lái)生成精確的延時(shí)。

以下將詳細(xì)介紹如何使用定時(shí)器實(shí)現(xiàn)微秒級(jí)延時(shí)的步驟:

步驟 1:配置定時(shí)器

首先,需要選擇一個(gè)適合的定時(shí)器。大多數(shù)STM32微控制器都配備了多個(gè)定時(shí)器,因此,可以根據(jù)需求選擇一個(gè)可用的定時(shí)器。一般來(lái)說(shuō),TIM2和TIM3定時(shí)器是常用的,具備較高的精度和可編程性。

接下來(lái),需要進(jìn)行定時(shí)器的基本配置,包括時(shí)鐘源、計(jì)數(shù)模式、分頻系數(shù)等??梢愿鶕?jù)具體需求,選擇合適的配置參數(shù)。通常情況下,可以選擇內(nèi)部時(shí)鐘源作為定時(shí)器的時(shí)鐘源,并將分頻系數(shù)設(shè)置為最小,以獲得最高的精度。

步驟 2:設(shè)置計(jì)數(shù)周期

接下來(lái),需要設(shè)置定時(shí)器的計(jì)數(shù)周期,以確定延時(shí)的時(shí)長(zhǎng)。根據(jù)定時(shí)器的位數(shù)(例如,16位或32位),可以設(shè)置計(jì)數(shù)器的最大值。通過(guò)修改自動(dòng)重裝載寄存器(ARR),可以設(shè)置計(jì)數(shù)器的最大值。

計(jì)算最大延時(shí)(us)的公式為:

最大延時(shí)(us)= (計(jì)數(shù)器最大值+1) * 定時(shí)器分頻系數(shù) / 定時(shí)器頻率

通過(guò)調(diào)整最大值,即可獲得所需的微秒級(jí)延時(shí)。

步驟 3:編寫(xiě)延時(shí)函數(shù)

最后,根據(jù)上述配置,編寫(xiě)一個(gè)延時(shí)函數(shù)來(lái)實(shí)現(xiàn)微秒級(jí)延時(shí)。這個(gè)函數(shù)的實(shí)現(xiàn)基于定時(shí)器的中斷機(jī)制。

首先,需要使能定時(shí)器的中斷,并配置定時(shí)器中斷的優(yōu)先級(jí)。可以使用HAL庫(kù)提供的相關(guān)函數(shù)來(lái)完成這些配置。

然后,編寫(xiě)中斷服務(wù)函數(shù)(ISR),并在其中對(duì)延時(shí)時(shí)間進(jìn)行判斷。當(dāng)計(jì)數(shù)器計(jì)數(shù)達(dá)到預(yù)設(shè)值時(shí),就說(shuō)明已經(jīng)延時(shí)完成,可以清除中斷標(biāo)志位,并執(zhí)行相應(yīng)的處理。

需要注意的是,在定時(shí)器中斷函數(shù)中,可以使用全局變量來(lái)統(tǒng)計(jì)中斷次數(shù),以便于在延時(shí)函數(shù)中進(jìn)行計(jì)時(shí)。

最后,在延時(shí)函數(shù)中,可以使用循環(huán)或者其他方式,來(lái)判斷延時(shí)是否達(dá)到預(yù)設(shè)的時(shí)間。比較常用的方法是使用一個(gè)while循環(huán),判斷計(jì)數(shù)次數(shù)是否滿足條件。當(dāng)滿足條件時(shí),延時(shí)完成。

綜上所述,通過(guò)以上步驟,可以在STM32微控制器中使用定時(shí)器實(shí)現(xiàn)微秒級(jí)延時(shí)。在實(shí)際應(yīng)用中,可以根據(jù)需求進(jìn)行相應(yīng)的配置和優(yōu)化。

關(guān)鍵字:STM32  定時(shí)器 引用地址:STM32如何使用定時(shí)器實(shí)現(xiàn)微秒(us)級(jí)延時(shí)?

上一篇:stm32單片機(jī)5v電壓怎么提供
下一篇:應(yīng)用筆記 | 淺談STM32庫(kù)里的回調(diào)函數(shù)

推薦閱讀最新更新時(shí)間:2025-07-02 20:10

STM32一文通(7) 系統(tǒng)定時(shí)器
直接看第五節(jié)就是定時(shí)函數(shù). 下面的內(nèi)容都是在介紹原理 3.0 版以后的 STM32 固件庫(kù)在標(biāo)準(zhǔn)外設(shè)庫(kù)中移除了 SysTick 的驅(qū)動(dòng),因此用戶必須調(diào)用 CMSIS 定義的函數(shù)。 CMSIS 只提供了一個(gè) SysTick 設(shè)置的函數(shù),替代了 STM32 原有 SysTick 驅(qū)動(dòng)的全部函數(shù)。 SysTick_Config(uint32_t ticks); -SysTick 計(jì)時(shí)器是 24 位的,所以設(shè)置參數(shù)的時(shí)候不要超過(guò) 24 位的范圍。 一. 什么是系統(tǒng)定時(shí)器 SysTick SysTick:系統(tǒng)定時(shí)器,24位,只能遞減,存在于內(nèi)核,嵌套在NVIC中,所有的Cortex-M內(nèi)核的單片機(jī)都具有這個(gè)定時(shí)器。 系統(tǒng)嘀嗒校準(zhǔn)
[單片機(jī)]
如何利用stm32的高級(jí)定時(shí)器產(chǎn)生PWM
用stm32的高級(jí)定時(shí)器TIM1和TIM8產(chǎn)生PWM,需要注意: 1.都有TIM1,但只有flash容量大于256K的大容量單片機(jī)才有TIM8 2.高級(jí)定時(shí)器相對(duì)于通用定時(shí)器,多了TIM_CtrlPWMOutputs(TIM8, ENABLE); TIM1產(chǎn)生四路PWM程序: staticvoidTIM1_GPIO_Config(void) { GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
[單片機(jī)]
如何利用<font color='red'>stm32</font>的高級(jí)<font color='red'>定時(shí)器</font>產(chǎn)生PWM
STM32學(xué)習(xí)之通用定時(shí)器的使用
簡(jiǎn)介:STM32一共有8個(gè)通用16位Timer,其中TIMER1和TIMER8是高級(jí)定時(shí)器,其它的TIMER2~TIMER7是普通定時(shí)器。此外還有一個(gè)Systick(系統(tǒng)滴答定時(shí)器),這個(gè)定時(shí)器通常在操作系統(tǒng)中作為系統(tǒng)的任務(wù)切換周期。還有一個(gè)RTC,是一個(gè)毫秒定時(shí)器,支持秒級(jí)中斷,用來(lái)做實(shí)時(shí)時(shí)鐘計(jì)數(shù)器。看門(mén)狗定時(shí)器 也可以算一個(gè)。 8個(gè)定時(shí)器中,Timer1 和Timer8是由APB2(輸出最高頻率為72MHZ)預(yù)分頻后,再通過(guò)一個(gè)倍頻器得到時(shí)鐘頻率,最高為72MHz。Timer2~Timer7則是由APB1(輸出最高頻率為36MHZ)預(yù)分頻后,再通過(guò)一個(gè)倍頻器得到時(shí)鐘頻率,最高為36MHz。 1、如何進(jìn)行程序編寫(xiě) 這
[單片機(jī)]
<font color='red'>STM32</font>學(xué)習(xí)之通用<font color='red'>定時(shí)器</font>的使用
STM32開(kāi)發(fā)筆記19: STM32CubeMX中定時(shí)器的配置方法
本文介紹在STM32CubeMX進(jìn)行定時(shí)器的配置,產(chǎn)生固定時(shí)間中斷的方法,以TIM2為例,步驟如下: 1、使能TIM2,指定時(shí)鐘源。 2、查看數(shù)據(jù)手冊(cè),確定該定時(shí)器的內(nèi)部數(shù)據(jù)總線,本文所引用的定時(shí)器內(nèi)部數(shù)據(jù)總線為APB1。 3、在時(shí)鐘配置中確認(rèn)所選定時(shí)器的內(nèi)部數(shù)據(jù)總線的時(shí)鐘頻率,我這里是32MHz。 4、在配置頁(yè)中,選中相應(yīng)的時(shí)鐘,在Prescaler中輸入預(yù)分頻系數(shù),在Counter Period中輸入溢出系數(shù)。例如,本例中時(shí)鐘為32MHz/32=1MHz,也就是一個(gè)周期為1us,我選擇溢出系數(shù)為1000,則產(chǎn)生中斷的時(shí)間為1ms。在Prescaler中輸入總線頻率的整數(shù)部分
[單片機(jī)]
<font color='red'>STM32</font>開(kāi)發(fā)筆記19: STM32CubeMX中<font color='red'>定時(shí)器</font>的配置方法
STM32學(xué)習(xí)之通用定時(shí)器中斷
STM32定時(shí)器學(xué)習(xí) 高級(jí)寄存器TIM1和TIM8 通用寄存器TIM2,TIM3,TIM4,TIM5 基本寄存器TIM6,TIM7 通用寄存器是由 時(shí)鐘、時(shí)基單元、輸入、輸出組成。 計(jì)數(shù)器時(shí)鐘可以由下列時(shí)鐘源提供: 內(nèi)部時(shí)鐘(CK_INT) 外部時(shí)鐘模式1:外部輸入腳(TIx) 外部時(shí)鐘模式2:外部觸發(fā)輸入(ETR) 內(nèi)部觸發(fā)輸入(ITRx):使用一個(gè)定時(shí)器作為另一個(gè)定時(shí)器的預(yù)分頻器,如可以配置一個(gè)定時(shí)器Timer1而作為另一個(gè)定時(shí)器Timer2的預(yù)分頻器。 TIM2-7的內(nèi)部時(shí)鐘來(lái)自于低速APB1總線,如果APB1分頻系數(shù)為1,則定時(shí)器時(shí)鐘等于APB1的時(shí)鐘,若不是,則定時(shí)器時(shí)鐘為APB1
[單片機(jī)]
STM32系統(tǒng)學(xué)習(xí)——SysTick(系統(tǒng)定時(shí)器
SysTick系統(tǒng)定時(shí)器是屬于CM3內(nèi)核中的一個(gè)外設(shè),內(nèi)嵌在NVIC(嵌套向量中斷控制器,控制整個(gè)芯片中斷相關(guān)的功能,它與內(nèi)核緊密藕合,是內(nèi)核中的一個(gè)外設(shè))中。系統(tǒng)定時(shí)器是一個(gè)24位的向下遞減的計(jì)數(shù)器,計(jì)數(shù)器每計(jì)數(shù)一次的時(shí)間為1/SYSCLK,一般我們?cè)O(shè)置系統(tǒng)時(shí)鐘SYSCLK為72MHZ,當(dāng)重裝載數(shù)值寄存器的值遞減為0時(shí),系統(tǒng)定時(shí)器就產(chǎn)生一次中斷,以此循環(huán)往返。 因?yàn)镾ysTick是屬于CM3內(nèi)核的外設(shè),所以所有基于CM3內(nèi)核的單片機(jī)都具有這個(gè)系統(tǒng)定時(shí)器,這使得軟件在CM3單片機(jī)中可以很容易被移植。系統(tǒng)定時(shí)器一般用于操作系統(tǒng),用于產(chǎn)生時(shí)基,維持操作系統(tǒng)的心跳。 一、SysTick寄存器介紹 SysTick系統(tǒng)定時(shí)器中有4個(gè)寄存器,
[單片機(jī)]
STM32單片機(jī)的通用定時(shí)器定時(shí)時(shí)間的計(jì)算
STM32中的定時(shí)器有多種,按功能分成2個(gè)高級(jí)控制器定時(shí)器,4個(gè)普通定時(shí)器,2個(gè)基本定時(shí)器,2個(gè)看門(mén)狗定時(shí)器,1個(gè)系統(tǒng)滴答定時(shí)器SysTICk。 定時(shí)器的關(guān)鍵是定時(shí)時(shí)間的計(jì)算。比如用定時(shí)器控制繼電器的開(kāi)關(guān)的時(shí)候,需要延時(shí)一段時(shí)間才關(guān)閉或者開(kāi)啟,這時(shí)候離不開(kāi)定時(shí)器定時(shí)。 通用定時(shí)器定時(shí)時(shí)間計(jì)算。1秒中斷的基本實(shí)現(xiàn): 通用定時(shí)器模塊的入口時(shí)鐘經(jīng)過(guò)分頻得到計(jì)數(shù)器的時(shí)鐘,用CK_CNT表示,預(yù)分頻器的系數(shù)為:TIMx_PSC,當(dāng)TIMx_PSC=0時(shí),表示不分頻,=1時(shí),2分頻。以此類(lèi)推。 公式為:CK_CNT=fclk_PSC/(PSC +1),其中PSC最大為65535. 其次是TIM5計(jì)數(shù)器的計(jì)數(shù)值的設(shè)置
[單片機(jī)]
STM32 定時(shí)器輸出比較主動(dòng)模式
STM32的定時(shí)器還可以工作在輸出主動(dòng)模式TIM_OCMode_Active。這里所謂的主動(dòng)模式,通俗地說(shuō)就是當(dāng)定時(shí)器的計(jì)數(shù)值達(dá)到比較值的時(shí)候,強(qiáng)制在引腳端輸出高電平。在這里,我這里編寫(xiě)一個(gè)程序使定時(shí)器工作輸出比較主動(dòng)模式,然后經(jīng)過(guò)已經(jīng)時(shí)間的延時(shí),然后在通道引腳電平就會(huì)強(qiáng)制被拉高。 下面就講講相關(guān)的代碼,還是基于我自己的規(guī)范工程。 1、工程的修改 1)這里用到了定時(shí)器,所以需要將stm32f10x_tim.h添加到STM32F10x_StdPeriod_Driver工程組中。 2)打開(kāi)stm32f0x_conf.h文件,將其中原先被屏蔽的語(yǔ)句:#include stm32f10x_tim.h 的注釋去掉。 3)新建OCAc
[單片機(jī)]
<font color='red'>STM32</font> <font color='red'>定時(shí)器</font>輸出比較主動(dòng)模式
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車(chē)開(kāi)發(fā)圈

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

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved