衡阳派盒市场营销有限公司

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

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

3天內不再提示

學習STM32F103的定時器功能

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

踩坑STM32F103系列-----定時器

三勺最近在學習STM32F103的定時器功能,本文主要解釋在配置通用、基本、高級定時器寄存器實現相應功能時遇到的一些問題。

目標一:基本定時器的1ms定時功能

根據技術手冊設置:

1/**
 2  * @brief  定時器6 1ms定時
 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    //=====定時器6時鐘======//
10    RCC- >APB1ENR |= 1< 4;
11
12    //=====定時器6初始化=====//
13    //-自動裝載-//
14    TIM6- >CR1 |= 1< 7;
15
16    //-更新中斷使能-//
17    TIM6- >DIER |= 1< 0;
18    //-設置計數周期-//
19    //TIM6- >CNT = 1000; 
20    //-自動重裝寄存器-//
21    TIM6- >ARR = 1000-1;
22    //-預分頻寄存器-//
23    TIM6- >PSC = 36-1;
24    //-開啟計數器使能-//
25    TIM6- >CR1 |= 1< 0;
26}

在中斷服務函數中翻轉GPIOC13的電平。

使用邏輯分析儀分析:

現象1 :根據邏輯分析儀的采樣結果,發現定時時間并不是1ms,而實2ms。

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

查看數據手冊的時鐘章節框圖可以發現端倪,在APB136M時鐘后,由于滿足了APB1預分配不為1的條件,定時器時鐘進行了倍頻。

圖片

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

圖片

目標二:高級定時器3路互補輸出+死區

根據技術手冊設置:

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    //=====開啟定時器1時鐘=====//
17    RCC- >APB2ENR |= 1< 11;
18    //=====配置定時器 時基單元=====//
19
20    //+預分頻寄存器+//
21    TIM1- >PSC = 72-1;
22    //+自動重裝載值+//
23    TIM1- >ARR = 100 -1;
24    //+捕獲/比較寄存器+//
25    //-設置為PWM1模式-//
26    TIM1- >CCMR1 |= (0x6)< 4);
27    TIM1- >CCMR1 |= (0x6)< 12);
28    TIM1- >CCMR2 |= (0x6)< 4);
29    //-使能預裝在寄存器-//
30    TIM1- >CCMR1 |= (1)< 11);
31    TIM1- >CCMR1 |= (1)< 3);
32    TIM1- >CCMR2 |= (1)< 3);
33
34    //-開啟自動重裝載允許位-//
35    TIM1- >CR1 |= (0x1)< 7;  
36    //設置向上計數//
37    TIM1- >CR1 &= ~((0x1)< 4);
38    //設置時鐘分頻因子
39    //TIM1- >CR1 |= ((0x2)< 8);
40
41    //+開啟通道輸出+//
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    //-設置各通道占空比-//
51    TIM1- >CCR1 = 50;
52    TIM1- >CCR2 = 10;
53    TIM1- >CCR3 = 10;
54    //產生更新事件
55    TIM1- >EGR |= 1< 0;
56
57    //-死區時間設置-//
58    TIM1- >BDTR |= ((0x7)< 5);
59    TIM1- >BDTR |= 1;
60    //-主輸出使能-//
61    TIM1- >BDTR |= ((0x1)< 15);
62    //-開啟定時器-//
63    TIM1- >CR1 |= (0x1)< 0;
64}

現象: 一點波形也沒有,都是低電平。

原因和步驟:

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

第二,代碼的第58、59行,死區時間設置的比波形還長導致一直輸出的是低電平。

修正后波形如下:

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5363

    瀏覽量

    121155
  • 中斷
    +關注

    關注

    5

    文章

    900

    瀏覽量

    41746
  • 定時器
    +關注

    關注

    23

    文章

    3255

    瀏覽量

    115366
  • STM32F103
    +關注

    關注

    33

    文章

    479

    瀏覽量

    63874
收藏 人收藏

    評論

    相關推薦

    STM32F103定時器學習

    STM32F103定時器怎么學習
    發表于 12-11 17:21

    了解STM32F103定時器

    STM32F103定時器配置##一、什么是定時器定時器,顧名思義,就是用于定時或計數,它其實就是一個加1計數
    發表于 08-13 06:29

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

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

    stm32f103芯片的定時器功能等級

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

    怎樣去配置STM32F103通用定時器定時中斷

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

    詳解STM32F103的高級定時器

    STM32F103的高級定時器功能主要有哪些呢?STM32F103高級定時器的結構是怎樣組成的呢?
    發表于 11-24 07:25

    基于STM32F103系列單片機的11個定時器解析

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

    STM32F103定時器觸發ADC官方程序免費下載

    本文檔的主要內容詳細介紹的是STM32F103定時器觸發ADC官方程序免費下載
    發表于 10-30 15:40 ?71次下載

    STM32F103系列單片機中的定時器工作原理解析

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

    使用STM32F103單片機實現定時器實驗的詳細資料說明

    本文檔的主要內容詳細介紹的是使用STM32F103單片機實現定時器實驗的詳細資料說明。
    發表于 04-07 08:00 ?5次下載
    使用<b class='flag-5'>STM32F103</b>單片機實現<b class='flag-5'>定時器</b>實驗的詳細資料說明

    STM32F103單片機TIM1定時器

    畢業后工作后首次使用STM32F103單片機(這里將作為日常學習與開發的調試記錄)調試呼吸燈功能使用TIM1\2\3\4\5定時器。在調試過程中使用相同的配置,對
    發表于 11-18 15:06 ?14次下載
    <b class='flag-5'>STM32F103</b>單片機TIM1<b class='flag-5'>定時器</b>

    STM32F103-定時器

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

    STM32F03定時器基礎知識基本簡介

    STM32F103微控制定時器分為系統定時器(SysTick)、“看門狗”定時器(WatchDog)、基本
    的頭像 發表于 07-03 17:08 ?3930次閱讀
    <b class='flag-5'>STM32F</b>03<b class='flag-5'>定時器</b>基礎知識基本簡介

    學習STM32F103的DAC功能

    三勺最近在學習STM32F103的DAC功能,本文主要解釋在配置DAC寄存實現相應功能時遇到的一些問題。
    的頭像 發表于 10-24 16:00 ?2909次閱讀
    <b class='flag-5'>學習</b><b class='flag-5'>STM32F103</b>的DAC<b class='flag-5'>功能</b>

    學習STM32F103的ADC功能

    三勺最近在學習STM32F103的ADC功能,居然連最簡單的獨立模式的單通道的電壓采集都不能實現,這就不能忍了,這是對智商的侮辱。
    的頭像 發表于 10-24 16:06 ?2353次閱讀
    <b class='flag-5'>學習</b><b class='flag-5'>STM32F103</b>的ADC<b class='flag-5'>功能</b>
    上市百家乐.评论| 德格县| 百家乐官网封号| 百家乐官网桌出租| 百家乐必赢| 百家乐官网代理在线游戏可信吗网上哪家平台信誉好安全 | 皇冠网现金网| 24山向吉凶详解视频| 大发888冲值| 百家乐官网赔率计算| 宁波水果机遥控器| 跪求百家乐官网打法| 走地皇娱乐城| 百家乐赌场合作| 网上现金游戏网 | 风水罗盘24山| 云博| 百家乐网上技巧| 天天乐娱乐城官网| 百家乐投注最好方法| 百家乐官网赢钱绝技| 百家乐那里玩| 百家乐官网概率统计| 大发888刮刮了下载| 金矿百家乐官网的玩法技巧和规则| 德州扑克吧| 属猴人做生意门面的风水| 大发888游戏怎么玩| 火命与金命做生意| 姚记娱乐城官网| 百家乐桌码合| 百家乐官网平注法攻略| 大发888娱乐场lm0| 百家乐官网专打方法| 巴彦淖尔市| 博必发百家乐的玩法技巧和规则 | 华侨人百家乐的玩法技巧和规则| 广东百家乐官网扫描分析仪 | 澳门百家乐几副牌| 百家乐官网娱乐城足球盘网| 东方太阳城二期|