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

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

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

學(xué)習(xí)STM32F103的定時(shí)器功能

CHANBAEK ? 來(lái)源: 三勺工作室 ? 作者:楊可困 ? 2023-10-24 15:49 ? 次閱讀

踩坑STM32F103系列-----定時(shí)器

三勺最近在學(xué)習(xí)STM32F103的定時(shí)器功能,本文主要解釋在配置通用、基本、高級(jí)定時(shí)器寄存器實(shí)現(xiàn)相應(yīng)功能時(shí)遇到的一些問(wèn)題。

目標(biāo)一:基本定時(shí)器的1ms定時(shí)功能

根據(jù)技術(shù)手冊(cè)設(shè)置:

1/**
 2  * @brief  定時(shí)器6 1ms定時(shí)
 3  * @param  None
 4  * @retval None
 5  */
 6void Cbsp::time::time_basic(void)
 7{
 8    mod.nvic.MY_NVIC_Init(3,3,TIM6_IRQn,2);
 9    //=====定時(shí)器6時(shí)鐘======//
10    RCC- >APB1ENR |= 1< 4;
11
12    //=====定時(shí)器6初始化=====//
13    //-自動(dòng)裝載-//
14    TIM6- >CR1 |= 1< 7;
15
16    //-更新中斷使能-//
17    TIM6- >DIER |= 1< 0;
18    //-設(shè)置計(jì)數(shù)周期-//
19    //TIM6- >CNT = 1000; 
20    //-自動(dòng)重裝寄存器-//
21    TIM6- >ARR = 1000-1;
22    //-預(yù)分頻寄存器-//
23    TIM6- >PSC = 36-1;
24    //-開(kāi)啟計(jì)數(shù)器使能-//
25    TIM6- >CR1 |= 1< 0;
26}

在中斷服務(wù)函數(shù)中翻轉(zhuǎn)GPIOC13的電平。

使用邏輯分析儀分析:

現(xiàn)象1 :根據(jù)邏輯分析儀的采樣結(jié)果,發(fā)現(xiàn)定時(shí)時(shí)間并不是1ms,而實(shí)2ms。

原因和步驟 :按照計(jì)算公式APB1的時(shí)鐘為36M,定時(shí)器6設(shè)置36分頻,每次累加的時(shí)間為1us,ARR寄存器為1000,則定時(shí)時(shí)間為1ms。出現(xiàn)這種情況唯一的可能就是定時(shí)器的時(shí)鐘頻率是72M導(dǎo)致的。

查看數(shù)據(jù)手冊(cè)的時(shí)鐘章節(jié)框圖可以發(fā)現(xiàn)端倪,在APB136M時(shí)鐘后,由于滿足了APB1預(yù)分配不為1的條件,定時(shí)器時(shí)鐘進(jìn)行了倍頻。

圖片

因此修改定時(shí)器的分配系數(shù)為72-1,再用邏輯分析儀抓取波形,定時(shí)時(shí)間正確。

圖片

目標(biāo)二:高級(jí)定時(shí)器3路互補(bǔ)輸出+死區(qū)

根據(jù)技術(shù)手冊(cè)設(shè)置:

1void Cbsp::time::tim_senior_PWM(void)
 2{
 3    RCC- >APB2ENR |= 1< 2;//*A*//
 4    RCC- >APB2ENR |= 1< 3;//*B*//
 5
 6    //=====初始化GPIO=====//
 7    GPIOA- >CRH = 0;
 8    GPIOB- >CRH = 0;
 9    GPIOA- >CRH |= 0x0B< 8-8)*4;
10    GPIOA- >CRH |= 0x0B< 9-8)*4;
11    GPIOA- >CRH |= 0x0B< 10-8)*4;
12    GPIOB- >CRH |= 0x0B< 13-8)*4;
13    GPIOB- >CRH |= 0x0B< 14-8)*4;
14    GPIOB- >CRH |= 0x0B< 15-8)*4;
15
16    //=====開(kāi)啟定時(shí)器1時(shí)鐘=====//
17    RCC- >APB2ENR |= 1< 11;
18    //=====配置定時(shí)器 時(shí)基單元=====//
19
20    //+預(yù)分頻寄存器+//
21    TIM1- >PSC = 72-1;
22    //+自動(dòng)重裝載值+//
23    TIM1- >ARR = 100 -1;
24    //+捕獲/比較寄存器+//
25    //-設(shè)置為PWM1模式-//
26    TIM1- >CCMR1 |= (0x6)< 4);
27    TIM1- >CCMR1 |= (0x6)< 12);
28    TIM1- >CCMR2 |= (0x6)< 4);
29    //-使能預(yù)裝在寄存器-//
30    TIM1- >CCMR1 |= (1)< 11);
31    TIM1- >CCMR1 |= (1)< 3);
32    TIM1- >CCMR2 |= (1)< 3);
33
34    //-開(kāi)啟自動(dòng)重裝載允許位-//
35    TIM1- >CR1 |= (0x1)< 7;  
36    //設(shè)置向上計(jì)數(shù)//
37    TIM1- >CR1 &= ~((0x1)< 4);
38    //設(shè)置時(shí)鐘分頻因子
39    //TIM1- >CR1 |= ((0x2)< 8);
40
41    //+開(kāi)啟通道輸出+//
42    TIM1- >CCER |= 1< 0;//CC1
43    TIM1- >CCER |= 1< 4;//CC2
44    TIM1- >CCER |= 1< 8;//CC3
45
46    TIM1- >CCER |= 1< 2;//CC1N
47    TIM1- >CCER |= 1< 6;//CC2N
48    TIM1- >CCER |= 1< 10;//CC3N  
49
50    //-設(shè)置各通道占空比-//
51    TIM1- >CCR1 = 50;
52    TIM1- >CCR2 = 10;
53    TIM1- >CCR3 = 10;
54    //產(chǎn)生更新事件
55    TIM1- >EGR |= 1< 0;
56
57    //-死區(qū)時(shí)間設(shè)置-//
58    TIM1- >BDTR |= ((0x7)< 5);
59    TIM1- >BDTR |= 1;
60    //-主輸出使能-//
61    TIM1- >BDTR |= ((0x1)< 15);
62    //-開(kāi)啟定時(shí)器-//
63    TIM1- >CR1 |= (0x1)< 0;
64}

現(xiàn)象: 一點(diǎn)波形也沒(méi)有,都是低電平。

原因和步驟:

第一,代碼的第61行MOE位主輸出使能,忘記設(shè)置。

第二,代碼的第58、59行,死區(qū)時(shí)間設(shè)置的比波形還長(zhǎng)導(dǎo)致一直輸出的是低電平。

修正后波形如下:

圖片

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

    關(guān)注

    31

    文章

    5250

    瀏覽量

    119192
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    889

    瀏覽量

    41219
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3218

    瀏覽量

    113665
  • STM32F103
    +關(guān)注

    關(guān)注

    33

    文章

    475

    瀏覽量

    63195
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32F103定時(shí)器學(xué)習(xí)

    STM32F103定時(shí)器怎么學(xué)習(xí)
    發(fā)表于 12-11 17:21

    了解STM32F103定時(shí)器

    STM32F103定時(shí)器配置##一、什么是定時(shí)器定時(shí)器,顧名思義,就是用于定時(shí)或計(jì)數(shù),它其實(shí)就是一個(gè)加1計(jì)數(shù)
    發(fā)表于 08-13 06:29

    講解STM32F103定時(shí)器定時(shí)-中斷功能 精選資料分享

    今天講解STM32F103定時(shí)器定時(shí)-中斷功能,在昨天定時(shí)器延時(shí)的軟件工程上添加TIM3定時(shí)
    發(fā)表于 08-16 07:23

    stm32f103芯片的定時(shí)器功能等級(jí)

    概述對(duì)于stm32f103芯片,其中的定時(shí)器總共有8個(gè),功能上可以分為三個(gè)等級(jí)的定時(shí)器: -高級(jí)控制定時(shí)器(TIM1,TIM8) 。 16位
    發(fā)表于 08-19 07:58

    怎樣去配置STM32F103通用定時(shí)器定時(shí)中斷

    STM32F103通用TIMx定時(shí)器功能包括哪些?怎樣去配置STM32F103通用定時(shí)器定時(shí)
    發(fā)表于 11-23 07:20

    詳解STM32F103的高級(jí)定時(shí)器

    STM32F103的高級(jí)定時(shí)器功能主要有哪些呢?STM32F103高級(jí)定時(shí)器的結(jié)構(gòu)是怎樣組成的呢?
    發(fā)表于 11-24 07:25

    基于STM32F103系列單片機(jī)的11個(gè)定時(shí)器解析

    STM32F103系列的單片機(jī)一共有11個(gè)定時(shí)器,其中: 2個(gè)高級(jí)定時(shí)器 4個(gè)普通定時(shí)器 2個(gè)基本定時(shí)器 2個(gè)看門狗
    發(fā)表于 10-23 15:54 ?6949次閱讀
    基于<b class='flag-5'>STM32F103</b>系列單片機(jī)的11個(gè)<b class='flag-5'>定時(shí)器</b>解析

    STM32F103定時(shí)器觸發(fā)ADC官方程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32F103定時(shí)器觸發(fā)ADC官方程序免費(fèi)下載
    發(fā)表于 10-30 15:40 ?71次下載

    STM32F103系列單片機(jī)中的定時(shí)器工作原理解析

    STM32F103系列的單片機(jī)一共有11個(gè)定時(shí)器,其中: 2個(gè)高級(jí)定時(shí)器 4個(gè)普通定時(shí)器 2個(gè)基本定時(shí)器 2個(gè)看門狗
    發(fā)表于 11-07 16:30 ?1.4w次閱讀
    <b class='flag-5'>STM32F103</b>系列單片機(jī)中的<b class='flag-5'>定時(shí)器</b>工作原理解析

    使用STM32F103單片機(jī)實(shí)現(xiàn)定時(shí)器實(shí)驗(yàn)的詳細(xì)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用STM32F103單片機(jī)實(shí)現(xiàn)定時(shí)器實(shí)驗(yàn)的詳細(xì)資料說(shuō)明。
    發(fā)表于 04-07 08:00 ?5次下載
    使用<b class='flag-5'>STM32F103</b>單片機(jī)實(shí)現(xiàn)<b class='flag-5'>定時(shí)器</b>實(shí)驗(yàn)的詳細(xì)資料說(shuō)明

    STM32F103單片機(jī)TIM1定時(shí)器

    畢業(yè)后工作后首次使用STM32F103單片機(jī)(這里將作為日常學(xué)習(xí)與開(kāi)發(fā)的調(diào)試記錄)調(diào)試呼吸燈功能使用TIM1\2\3\4\5定時(shí)器。在調(diào)試過(guò)程中使用相同的配置,對(duì)
    發(fā)表于 11-18 15:06 ?14次下載
    <b class='flag-5'>STM32F103</b>單片機(jī)TIM1<b class='flag-5'>定時(shí)器</b>

    STM32F103-定時(shí)器

    STM32F103系列的單片機(jī)一共有11個(gè)定時(shí)器,其中:1個(gè)系統(tǒng)嘀嗒定時(shí)器2個(gè)看門狗定時(shí)器2個(gè)基本定時(shí)器(TIM6和TIM7)4個(gè)通用
    發(fā)表于 12-31 19:14 ?13次下載
    <b class='flag-5'>STM32F103</b>-<b class='flag-5'>定時(shí)器</b>

    STM32F03定時(shí)器基礎(chǔ)知識(shí)基本簡(jiǎn)介

    STM32F103微控制定時(shí)器分為系統(tǒng)定時(shí)器(SysTick)、“看門狗”定時(shí)器(WatchDog)、基本
    的頭像 發(fā)表于 07-03 17:08 ?3310次閱讀
    <b class='flag-5'>STM32F</b>03<b class='flag-5'>定時(shí)器</b>基礎(chǔ)知識(shí)基本簡(jiǎn)介

    學(xué)習(xí)STM32F103的DAC功能

    三勺最近在學(xué)習(xí)STM32F103的DAC功能,本文主要解釋在配置DAC寄存實(shí)現(xiàn)相應(yīng)功能時(shí)遇到的一些問(wèn)題。
    的頭像 發(fā)表于 10-24 16:00 ?2069次閱讀
    <b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>STM32F103</b>的DAC<b class='flag-5'>功能</b>

    學(xué)習(xí)STM32F103的ADC功能

    三勺最近在學(xué)習(xí)STM32F103的ADC功能,居然連最簡(jiǎn)單的獨(dú)立模式的單通道的電壓采集都不能實(shí)現(xiàn),這就不能忍了,這是對(duì)智商的侮辱。
    的頭像 發(fā)表于 10-24 16:06 ?1763次閱讀
    <b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>STM32F103</b>的ADC<b class='flag-5'>功能</b>