吴忠躺衫网络科技有限公司

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>
    澳门百家乐官网实战视频| 大发888娱乐软件| 豪博百家乐官网娱乐城| 足球现金网开户| 百家乐扑克片礼服| 百家乐官网最佳打| 全讯网wn888.com| 新百家乐.百万筹码| 美女百家乐官网的玩法技巧和规则| 得荣县| 金赞百家乐的玩法技巧和规则| 云鼎百家乐注册| 百家乐官网押注最高是多少| 百家乐官网视频二人雀神| 九江市| 阳春市| 赌球网站| 全球最大赌博网站| 大发888官方爱好| 帝王百家乐的玩法技巧和规则 | 威宁| 韦德亚洲| 大发888 大发国际| 百家乐麻将筹码币| 全讯网图库| 大发888是什么东| 大发888 casino官网| 大发888充值 在线| 大发888娱乐城17| 网络棋牌室| 太阳城亚州| 威尼斯人娱乐城信誉最好| 百家乐汝河路| 百家乐走势图| 百家乐博彩破解论坛| 金三角百家乐的玩法技巧和规则 | 澳门赌百家乐官网的玩法技巧和规则 | 代理百家乐免费试玩| 百家乐赌机破解| 悦榕庄百家乐的玩法技巧和规则| G3百家乐的玩法技巧和规则|