STM32:利用定時器的PWM輸出

2021-01-18 毛豬說技術

PWM,Pulse Width Modulation,即脈衝寬度調製,就是利用定時器的計數功能實現對模擬輸出的控制,可以產生周期和佔空比可調的信號輸出。連續輸出的話就會產生方波,周期由自動重裝載值ARR(TIMx_ARR)決定,佔空比由捕獲/比較寄存器(TIMx_CCR1~4)值決定。除了基本定時器TIM6、TIM7,其他定時器(通用、高級)都有PWM輸出功能。

在介紹如果進行脈寬調製之前,先介紹幾個重要的寄存器:

1、TIMx_CNT定時器計數器:存儲了當前定時器的計數值

2、TIMx_ARR自動重裝載寄存器:例如向上計數時當CNT從0計數到自動重裝載值ARR就會重新從0計數;向下計數時,就CNT從ARR計數到0時又重新從ARR往下計數;

3、TIMx_PSC預分頻寄存器:決定CNT計數頻率;

4、TIMx_CCMR1/2捕獲 /比較模式寄存器:OCxM設置PWM模式1或2(110/111)

5、TIMx_CCR1~4捕獲/比較寄存器:與CNT比較,決定輸出高/低電平,控制佔空比。

6、TIMx_CCER捕獲 /比較使能寄存器:CC1P位:輸入/捕獲1輸出極性。0:高電平有效,1:低電平有效。

舉例:設置向上計數,CC1P為0(高電平有效),PWM模式1,那麼可以得到下圖:

PWM輸出配置過程:

1、使能定時器時鐘,和對應GPIO時鐘;

2、初始化I/O:

GPIO_Init();//模式設置為GPIO_Mode_AF_PP

3、重映射還需使能AFIO時鐘,和設置部分或完全重映射;

4、初始化定時器:ARR,PSC等:TIM_TimeBaseInit();

5、設置PWM模式及通道方向、極性等:

6、使能定時器:如TIM_Cmd(TIM3, ENABLE); //使能 TIM3

7、使能預裝載寄存器: 如TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);

8、可以實時修改佔空比:TIM_SetComparex(x=1,2,3,4);

相關焦點

  • STM32——PWM輸出總結
    學習後發現stm32的定時器功能確實很強大,小總結一下方便以後使用的時候做參考。Stm32定時器一共分為三種:tim1和tim8是高級定時器,6和7是基本定時器,2—5是通用定時器。從名字就可以看得出來主要功能上的差異。今天我主要是用定時器做pwm輸出,所以總結也主要是針對pwm方面的。 先大致說下通用和高級定時器的區別。通用的可以輸出四路pwm信號互不影響。
  • STM32F4輸出PWM波形的配置總結
    單片機輸出pwm的原理涉及模塊:GPIO、TIM1主要寄存器:TIMx_CCR、TIMx_ARR、TIMx_CNT原理圖通用定時器可以利用GPIO引腳進行脈衝輸出,在配置為比較輸出、PWM輸出功能時,捕獲/比較寄存器TIMx_CCR被用作比較功能,下面把它簡稱為比較寄存器。
  • 利用PWM原理,實現呼吸燈功能
    實驗目標利用STM32定時器產生PWM信號;利用PWM信號實現呼吸燈。什麼是PWM信號呢?PWM,英文名Pulse Width Modulation。 PWM波可以由GPIO口產生,通過GPIO口輸出高電平,延時,輸出低電平,延時來產生PWM波。還可以使用定時器,利用比較寄存器形成PWM。本實驗就是利用PWM信號這一特性控制LED產生不同亮度,從而實現呼吸燈的效果。
  • stm32 學習 (設置TIM4輸出4路 pwm J-LINK仿真驗證)
    X >= A 時輸出低電平(高電平) ; PWM佔空比:A/(N+1)stm32的pwm輸出只要設置好在主循環前調用一次即可, 對用的IO就可以持續的輸出PWMTIM4配置PWM過程程序:7.貼一下程序記錄下:/*//TIM4 CH1 PWM 輸出設置//PWM 輸出初始化//arr:自動重裝值//psc:時鐘預分頻數
  • STM32F4——定時器原理及應用中斷、輸入捕獲、PWM輸出
    一、簡介: 不同的STM32系列有不同數量的定時器,針對現在學習的STM32F40x系列總共有14個定時器,針對這14個定時器可以將其分為3類,高級定時器、通用定時器和基本定時器,三種定時器大同小異,下邊會針對通用定時器來介紹定時器的原理和應用。
  • STM32定時器應用筆記AN4776之推薦閱讀
    第一部分包括如下內容:1.1 STM32定時器的基本組成單元主從控制單元時基單元定時器通道單元剎車單元1.2 STM32定時器的基本工作模式定時器基本功能配置輸入模式的通道配置輸出模式的通道配置1.3 STM32定時器的時鐘與時序同步功能模塊外部時鐘源模式1外部時鐘源模式2外部時鐘源模式1與模式2的對比第二部分的特定應用介紹包括如下內容:2.1 使用單脈衝模式實現指定數目脈衝的輸出
  • stm32單片機中使用GPIO口模擬PWM輸出解析
    gpio   General Purpose Input Output (通用輸入/輸出)簡稱為GPIO,或總線擴展器,人們利用工業標準I2C、SMBus或SPI接口簡化了I/O口的擴展。當微控制器或晶片組沒有足夠的I/O埠,或當系統需要採用遠端串行通信或控制時,GPIO產品能夠提供額外的控制和監視功能。
  • 基於Cortex-A9的pwm詳解——PWM信號輸出輸出和作用
    二、PWM信號輸出輸出和作用1. 如果要實現PWM信號輸出如何輸出呢?1)可以直接通過晶片內部模塊輸出PWM信號,前提是這個I/O口要有集成的pwm控制器,只需要通過對應的寄存器即可,這種自帶有PWM輸出的功能模塊在程序設計更簡便,同時數據更精確。2)但是如果IC內部沒有PWM功能模塊,或者要求不是很高的話可以利用I/O口設置一些參數來輸出PWM信號,因為PWM 信號其實就是一高一低的一系列電平組合在一起。
  • 正點原子-戰艦V3第十四章 PWM 輸出實驗
    上一章,我們介紹了 STM32 的通用定時器 TIM3,用該定時器的中斷來控制 DS1 的閃爍,這一章,我們將向大家介紹如何使用 STM32 的 TIM3 來產生 PWM 輸出。圖中,我們假定定時器工作在向上計數 PWM模式,且當 CNT<CCRx 時,輸出 0,當 CNT>=CCRx 時輸出 1。
  • 大佬帶你深入pwm殿堂,搞明白pwm頻率是咋回事
    對於pwm,想必很多朋友都有所耳聞。但是,大家對於pwm真的了解嗎?譬如,pwm頻率是如何被確定下來的?pwm頻率和pwm值是同一個東西嗎?如果不是,pwm頻率和pwm值有什麼區別呢?如果你對這些問題存在疑惑,或者是對本文涉及的pwm相關知識具有興趣,不妨繼續往下閱讀哦。
  • STM32單片機的定時器和ADC的應用方法介紹
    開啟兩個定時器給FPGA使用 要求是 一、定時器可以在任何時刻關閉,就算計數不滿也要停 二、定時器在再次開啟時可以從0計數 三、定時器可以在啟動過程中停止,然後更改定時周期再開始從0計數
  • PWM在ARM Linux中的原理和蜂鳴器驅動實例開發
    PWM(脈衝寬度調製)簡單的講是一種變頻技術之一,是靠改變脈衝寬度來控制輸出電壓,通過改變周期來控制其輸出頻率。如果還不是很清楚,好吧,來看看我們實際生活中的例子,我們的電風扇為什麼扭一下按扭,風扇的轉速就會發生變化;調一下收音機的聲音按鈕,聲音的大小就會發生變化;還有待會兒我們要講的蜂鳴器也會根據不同的輸入值而發出不同頻率的叫聲等等!!
  • 能否使用普通IO口模擬PWM波?該怎麼做?
    普通IO埠模擬PWM,其實是有局限的,尤其是要輸出高頻率的PWM波形時,更不適合,建議不要選用普通埠模擬PWM,而建議選用定時器復用硬體PWM輸出。普通埠如何模擬PWM有些單片機內部擁有帶PWM輸出功能的定時器,只需要簡單的配置參數和使能,就能夠在特定的復用IO引腳,輸出想要的PWM波形。但當設計電路當中,單片機引腳沒有PWM功能時,如果想要實現模擬PWM信號的功能,則可以與內部普通定時器去實現。
  • STM32cubeMX 基於stm32的定時器實現定時1秒LED閃爍
    )開啟 TIM1計時中斷;  /* USER CODE BEGIN 2 */    /*使能定時器1中斷*/    HAL_TIM_Base_Start_IT(&htim1);  /* USER CODE END 2 */  其次,在 tim.c文件中添加定時器中斷完成回調函數;/
  • STM32通用定時器使用詳解
    定時器可以進行定時器基本定時,輸出4路PWM,輸入捕獲本文詳細介紹這三個功能並且利用定時器3並且示例代碼使用2.開發環境開發平臺:keil5單片機:STM32F103ZET6#3.基本定時功能## 3.1定時器時鐘來源分析STM32部分時鐘樹:
  • LED燈的51單片機pwm控制實例
    我們知道 51單片機本身是沒有pwm接口的,這個程序是通過軟體模擬pwm.在一定的頻率的方波中,調整高電平和低電平的佔空比,即可實現LED燈亮度控制
  • 什麼是PWM信號,如何實現PWM輸出
    2、如何實現PWM信號輸出那麼如果要實現PWM信號輸出如何輸出呢?1)可以直接通過晶片內部模塊輸出PWM信號,前提是這個I/O口要有集成模塊,只需要簡單幾步操作即可,這種自帶有PWM輸出的功能模塊在程序設計更簡便,同時數據更精確。如下圖,一般的IC口都會標明這個是否是PWM口;
  • MSP430F149 TimerA 輸出pwm信號 C程序代碼
    MSP430F149 TimerA 輸出pwm信號 注意其中寄存器設置與pwm信號輸出引腳的對應關係 P1.2-TA1,TACCR1
  • stm32庫函數學習篇通用定時器輸入捕獲功能
    本文引用地址:http://www.eepw.com.cn/article/201611/318488.htm先有必要了解stm32定時器的輸入觸發模塊,如下圖:也就是說,每個通用定時器都只有四個獨立通道,當某一通道作為了輸入觸發功能那就不能再作為輸出匹配功能。這一點我們也可以從其他地方找到印證。
  • 【STM32】通用定時器的基本原理(實例:定時器中斷)
    STM32的通用定時器通用定時器功能特點描述STM32的通用定時器是由一個可編程預分頻器(PSC)驅動的16位自動重裝載計數器(CNT)構成,可用於測量輸入脈衝長度(輸入捕獲)或者產生輸出波形(輸出比較和PWM)等。