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

【STM32學習筆記7.2】定時器計時

發(fā)布者:MusicLover123最新更新時間:2025-02-06 來源: jianshu關鍵字:STM32  學習筆記  定時器計時 手機看文章 掃描二維碼
隨時隨地手機看文章

前言

本系列文章統(tǒng)一圍繞STM32F103C8T6最小系統(tǒng)開發(fā)板進行記錄,如涉及其他開發(fā)板將會特別說明。

定時器時鐘頻率

SystemInit()->SetSysClock()->SetSysClockTo72()->設置APB1為2分頻
->通用定時器時鐘頻率為2*36MHz = 72MHz

image.png

定時器計時配置思路

  1. 開啟定時器時鐘

    • 通用定時器掛載在APB1總線下。

  2. 配置定時器時基單元+使能定時器

    image.png

    • 溢出時間為1ms:arr = 1, psc = 35999

    • TIM_CounterMode_Up:向上計數(shù)模式

    • TIM_CKD_DIV1:決定數(shù)字濾波器采樣頻率的參數(shù),在輸入捕獲時會被用到。

  3. 配置定時器中斷源+NVIC

    • TIM_IT_Update:溢出中斷

代碼

時基單元配置:1ms

static void _timeBase_init(TIM_TypeDef *tim, u16 arr, u16 psc) {
    TIM_TimeBaseInitTypeDef timBase;

    timBase.TIM_Period = arr;
    timBase.TIM_Prescaler = psc;
    timBase.TIM_CounterMode = TIM_CounterMode_Up; // 向上計數(shù)
    timBase.TIM_ClockDivision = TIM_CKD_DIV1;
    // 初始化時基單元
    TIM_TimeBaseInit(tim, &timBase);
    // 使能定時器
    TIM_Cmd(tim, ENABLE);}

NVIC配置

static void _timer_nvic_init(void){
    NVIC_InitTypeDef tim;
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    tim.NVIC_IRQChannel = TIM2_IRQn;
    tim.NVIC_IRQChannelSubPriority = 1;
    tim.NVIC_IRQChannelPreemptionPriority = 0;
    tim.NVIC_IRQChannelCmd = ENABLE;

    NVIC_Init(&tim);}

定時器初始化

void bsp_timer_init(void){   
    // 開啟TIM3時鐘
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
    // 時基單元配置:1ms
    _timeBase_init(TIM2, 1, 35999);
    // 配置NVIC
    _timer_nvic_init(); 
    // 配置TIM3中斷為溢出中斷
    TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);}

中斷處理函數(shù)

void TIM2_IRQHandler(void)

{

    if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET) {

        // 清除中斷標志位

        TIM_ClearITPendingBit(TIM2, TIM_IT_Update);

        tim_cnt++;

    }

}

主函數(shù)

現(xiàn)象:tim_cnt每1ms進行自增,達到1000時置為0,并進行LED狀態(tài)翻轉。

int main()

{

u8 led_state = 0;

    bsp_timer_init();

    drv_led_init();


    while (1) {

        if (tim_cnt == 1000) {

            tim_cnt = 0;

            led_state ^= 1;

          drv_led_ctl(led_state);      


        }

    }

    return 0;

}


關鍵字:STM32  學習筆記  定時器計時 引用地址:【STM32學習筆記7.2】定時器計時

上一篇:stm32 TIM(通用定時器)
下一篇:基于STM32的對射式紅外傳感以及旋轉編碼器

推薦閱讀最新更新時間:2025-06-29 20:36

STM32學習筆記定時器的配置
實驗目的: 讓蜂鳴器每隔一秒響一次; 實驗步驟: 實驗程序: /************************led.c***********************/ #include stm32f4xx.h //在SYSTEM目錄下可以找到 #include sys.h void LED_Init(void){ RCC- AHB1ENR |= 1 5; //使能GPIO端口的F時鐘 GPIO_Set(GPIOF,PIN9|PIN10,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_25M,GPIO_PUPD_PU);
[單片機]
<font color='red'>STM32</font><font color='red'>學習</font><font color='red'>筆記</font>之<font color='red'>定時器</font>的配置
STM32學習筆記--EXTI
1、PA0 ... PF0 共用一個中斷標志 EXT0 PA1 ... PF1 共用一個中斷標志 EXT1 . . . . PA15... PF15共用一個中斷標志 EXT15 2、EXT5-9 共用一個中斷源 EXT10-15 共用一個中斷源 3、啟用中斷前,需ENABLE IO口的復用功能(AFIO) 4、設置中斷IO口 5、將IO口注冊到中斷線(將IO口映射到中斷線N) 例:GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource3); 將GPIOD.3注冊至                          
[單片機]
STM32學習筆記5:通用定時器PWM輸出
1. TIMER輸出PWM基本概念 脈沖寬度調制(PWM),是英文 Pulse Width Modulation 的縮寫,簡稱脈寬調制,是利用微處理器的數(shù)字輸出來對模擬電路進行控制的一種非常有效的技術。簡單一點,就是對脈沖寬度的控制。一般用來控制步進電機的速度等等。 STM32的定時器除了TIM6和TIM7之外,其他的定時器都可以用來產(chǎn)生PWM輸出,其中高級定時器TIM1和TIM8可以同時產(chǎn)生7路的PWM輸出,而通用定時器也能同時產(chǎn)生4路的PWM輸出。 1.1PWM輸出模式 STM32的PWM輸出有兩種模式,模式1和模式2,由TIMx_CCMRx寄存器中的OCxM位確定的( 110 為模式1, 111 為模式2)。模式
[單片機]
STM32學習筆記一時鐘和定時器
由于近期在準備海洋航行器比賽,正好趁此機會學習一下ARM,看到周圍很多同學都在使用32,所以我也買了一塊STM32F103ZET6,準備好好地學習一下。 STM32的時鐘系統(tǒng)相當?shù)膹碗s,包含了5個時鐘源,分別是HSI HSE LSI LSE PLL,HSI是高速內(nèi)部時鐘、RC振蕩器,頻率為8M,HSE是高速外部時鐘,即晶振,我的核心板上晶振為8M。LSI為低速內(nèi)部時鐘、RC振蕩器,頻率40k,LSE為低速外部時鐘,接32.768kHz晶振,作為RTC時鐘源。PLL為鎖相環(huán)倍頻輸出,最大不超過72M。 我在學習定時器時先看的是TIM3,它掛載在APB1分頻器上,APB1上面掛載的是低速外設,APB2上掛載高速外設。 在
[單片機]
STM32學習筆記之GPIO口的使用
STM32 Cotex-M3 GPIO口簡介與配置 一、GPIO口簡介 1、 GPIO口輸入輸出模式 1.1 一般來說STM32的輸入輸出管腳有以下8種配置方式: 輸入 ① 浮空輸入_IN_FLOATING 浮空輸入,可以做KEY識別 ② 帶上拉輸入_IPU IO內(nèi)部上拉電阻輸入 ③ 帶下拉輸入_IPD IO內(nèi)部下拉電阻輸入 ④ 模擬輸入_AIN 應用ADC模擬輸入,或者低功耗下省電 輸出 ⑤ 開漏輸出_OUT_OD IO輸出0接GND,IO輸出1,懸空,需要外接上拉電阻,才能實現(xiàn)輸出高電平。
[單片機]
<font color='red'>STM32</font><font color='red'>學習</font><font color='red'>筆記</font>之GPIO口的使用
ESP32學習筆記(45)——DAC接口使用
一、概述 ESP32 有兩個 8 位 DAC(數(shù)模轉換器) 通道,分別連接 GPIO25(通道 1) 和 GPIO26(通道 2)。 DAC 驅動器允許將這些通道設置為任意電壓。 ESP-IDF 編程指南——DAC 二、API說明 以下 DAC 接口位于 driver/include/driver/dac_common.h 。 2.1 dac_output_voltage 2.2 dac_output_enable 2.3 dac_cw_generator_config 2.4 dac_cw_generator_enable 三、通道引腳 兩個 8 位 DAC(數(shù)模轉換器) 通道,分別連接 GPIO25(通道
[單片機]
51單片機學習筆記
一、基礎知識 1.1 名詞解釋 比特(bit): 即一位二進制數(shù),用小寫b表示bit。二進制數(shù)字后面用B或b作后綴。 字節(jié)(Byte): 由八位二進制數(shù)構成,一般用大寫B(tài)表示。十六進制數(shù)后面用H作后綴,或0X、0x作前綴。 PROM(Programmable ROM): 可編程(燒寫)只讀存儲器,內(nèi)容斷電可以維持。內(nèi)容的存儲過程稱為固化、燒錄、燒寫。燒寫(一次性)時需要加高電壓。 EPROM(Erasable PROM): 可擦除、可編程只讀存儲器,也需要高電壓。存儲器頂部有窗口,專用紫外線照射可擦除其內(nèi)容。 EEPROM( Electrical EPROM,E^2PROM): 電可擦除、可編程只讀存儲器。5v電壓即可反復燒寫。
[單片機]
51單片機<font color='red'>學習</font><font color='red'>筆記</font>
STM8L151C8學習筆記1:LED驅動
按以往的單片機開發(fā)流程,第一步先來點個燈。 基于STM8與STM32同屬STM系列,要想點亮一個燈,所需步驟不過就三步: 開啟相應時鐘 初始化GPIO模式 拉高/置低來點亮LED 硬件電路 主控部分: LED電路: 代碼編寫 1.led.c 部分內(nèi)容如下: #include led.h /*GPIO*/ #define LED_PORT GPIOA #define LED1_PIN GPIO_Pin_6 #define LED2_PIN GPIO_Pin_7 /*LED*/ #define LED1 GPIO_Pin_6 #define
[單片機]
STM8L151C8<font color='red'>學習</font><font color='red'>筆記</font>1:LED驅動
小廣播
設計資源 培訓 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

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