国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32學(xué)習(xí)筆記(一):輸出PWM——HAL庫

這篇具有很好參考價值的文章主要介紹了STM32學(xué)習(xí)筆記(一):輸出PWM——HAL庫。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

本篇文章為個人參考總結(jié)所用,如果錯誤還望指出。
涉及的知識:
1、STM32CubeMx的部分使用
2、PWM原理及常用概念
3、用單片機生成一定頻率的PWM

用到的軟件及單片機:
1、STM32CubeMx
2、IDE: MDK-Keil軟件
3、芯片:STM32F407ZGT6
4、開發(fā)板:正點原子探索者
注:不同型號的單片機實現(xiàn)的原理基本相似,F(xiàn)1實現(xiàn)過程同理


一、PWM是什么?

??脈沖寬度調(diào)試(PWM),英文“Pulse Width Modulation”,是利用微處理器的數(shù)字輸出 來對模擬電路進行控制的一種非常有效的技術(shù),廣泛應(yīng)用在測量、通信、工控等方面。
PWM的幾個重要的參數(shù):
1、PWM的頻率
??PWM的頻率是指PWM信號中高電平和低電平交替出現(xiàn)的時間周期,也稱為PWM周期。它通常以赫茲(Hz)為單位表示,即每秒鐘發(fā)生多少次PWM周期。例如,一個PWM頻率為100Hz的信號的周期為10毫秒,即每10毫秒高電平和低電平各出現(xiàn)一次。
*2、PWM的周期

????????????????????T = 1 / f

??其中T是周期 ,f 是頻率。
??例如:如果頻率為100Hz,那么其對應(yīng)的周期就應(yīng)該是10毫秒。(1 / 100 = 0.01 s = 10 ms),也就是一秒鐘有100次PWM周期。
3、占空比
??PWM占空比是指PWM信號高電平狀態(tài)所占的時間與一個周期內(nèi)總時間之比,通常用百分比表示。例如,占空比為50%的PWM信號意味著高電平狀態(tài)和低電平狀態(tài)各占總周期的一半時間。

??在實際應(yīng)用中,PWM信號的占空比可以控制輸出電壓或電流的大小。具體而言,如果將PWM信號輸入到一個負載上(例如LED燈或電機),則其平均輸出電壓或電流將與占空比成正比關(guān)系。例如,占空比為80%的PWM信號將為接收器提供更高的平均電壓或電流(此時PWM輸出電壓 = 提供電壓 *80%),而占空比為20%的PWM信號將提供更低的平均值。

??在實際應(yīng)用中,使用PWM占空比來調(diào)整輸出的大小和強度非常常見。例如,對于LED燈來說,通過改變PWM占空比可以實現(xiàn)明亮度的調(diào)節(jié);對于電機來說,通過改變PWM占空比可以實現(xiàn)轉(zhuǎn)速的變化。

??注意: PWM的占空比通常是指正占空比,也就是PWM信號中高電平狀態(tài)所占時間與一個周期內(nèi)總時間之比。負占空比則表示低電平狀態(tài)所占時間與一個周期內(nèi)總時間之比。
以正占空比為例:
hal pwm,STM32,stm32,單片機,學(xué)習(xí)

二、實例

PWM輸出

1、CubeMx配置
(1)RCC設(shè)置
??設(shè)置高速外部時鐘HSE,選擇外部時鐘源,配置完后右邊窗口的相應(yīng)引腳會變成綠色,表明配置完成。
hal pwm,STM32,stm32,單片機,學(xué)習(xí)

(2)時鐘樹配置
??按下圖配置好后 回車鍵進行保存
hal pwm,STM32,stm32,單片機,學(xué)習(xí)

(3)SYS配置
??配置成 SWD協(xié)議下載和調(diào)試
hal pwm,STM32,stm32,單片機,學(xué)習(xí)

(4)定時器參數(shù)配置
??本次使用的是TIM3的串口1輸出PWM,占空比設(shè)置成為50%,輸出的PWM頻率為10KHZ,配置步驟如下(沒有提到的部分選擇默認即可),配置好后在右邊窗口便可觀察到對應(yīng)引腳(PA6)顯示綠色,即單片機會通過PA6引腳將配置好的PWM輸出。
hal pwm,STM32,stm32,單片機,學(xué)習(xí)PWM輸出頻率計算公式:
hal pwm,STM32,stm32,單片機,學(xué)習(xí)

  • Tout是PWM的輸出頻率
  • Ft是定時器的時鐘源頻率(可以從時鐘樹上獲得,本次測試為84MHZ)
  • ARR是自動重裝載寄存器的值,本次設(shè)置的數(shù)值是84-1
  • PSC是預(yù)分頻器寄存器的值,本次設(shè)置的數(shù)值是100-1

本次PWM的輸出頻率計算結(jié)果如下,得出PWM輸出頻率為10 000Hz,即10KHz:
hal pwm,STM32,stm32,單片機,學(xué)習(xí)
??關(guān)于該處計算方法講解可以聽一下正點原子該章的講解,鏈接放在下面
正點原子 定時器溢出時間計算方法

(4)①先配置工程名、存放存放路徑和開發(fā)環(huán)境。
注意:
Ⅰ、工程名和工程存放路徑最好不要帶有中文。
Ⅱ、其中"Toolchain/IDE"(編譯器和集成開發(fā)環(huán)境),該選項用于設(shè)置在生成代碼后使用的編譯器和開發(fā)環(huán)境,以便將代碼編譯成可執(zhí)行文件并下載到目標設(shè)備上,需要配置成適合自己Keil的版本,本次配置用到的是keil5軟件,故配置如下:
hal pwm,STM32,stm32,單片機,學(xué)習(xí)

②配置"Code Generator"(“代碼發(fā)生器。該選項用于通過向用戶提供配置界面,自動生成與STM32系列微控制器相關(guān)的初始化代碼和驅(qū)動程序。具體配置如下hal pwm,STM32,stm32,單片機,學(xué)習(xí)

(5)點擊"ENERATE CODE"生成工程,并打開工程。
注意:“打開工程”的前提是你需要安裝好MDKARM(本次默認keil5已經(jīng)安裝好)。
hal pwm,STM32,stm32,單片機,學(xué)習(xí)

2、代碼

(1)代碼說明
①生成的代碼與CubeMx設(shè)置的配置對應(yīng)
hal pwm,STM32,stm32,單片機,學(xué)習(xí)

(2)添加代碼
在main.c里面添加一行代碼即可輸出PWM。
代碼如下:

 /* USER CODE BEGIN 2 */
  
  HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);  /* 開啟定時器3通道1的PWM輸出 */
  
  /* USER CODE END 2 */

3、現(xiàn)象

??通過示波器觀察PA6引腳的PWM波形
占空比為50%
頻率為10KHz
周期為100us (微秒)
hal pwm,STM32,stm32,單片機,學(xué)習(xí)

3、總結(jié)

(1)出現(xiàn)的問題
??CubeMxz生成的代碼時鐘頻率是25MHZ,在此頻率下觀察到的方波如下:
hal pwm,STM32,stm32,單片機,學(xué)習(xí)??此時雖然可以生成PWM,但是生成的PWM頻率和周期不正確。
改正措施:
①將下圖中的25改為8
hal pwm,STM32,stm32,單片機,學(xué)習(xí)②搜索整個工程的“25000000”,將搜索到的修改為“8000000 ”。
按照上面的步驟修改后就能輸出正常的波形。文章來源地址http://www.zghlxwxcb.cn/news/detail-653545.html

到了這里,關(guān)于STM32學(xué)習(xí)筆記(一):輸出PWM——HAL庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • STM32 HAL庫多路PWM沒有輸出踩坑記錄

    ? 之前只弄過單路的,這次想用4路PWM,CUBE里面一頓配置,生成,然后套用之前的代碼: 這算是開啟第一路了,心想后面無非就復(fù)制幾條,改下通道的事了,無意中點了下TIM_CHANNEL_1,進頭文件看看: 看到TIM_CHANNEL_ALL時,眼前一亮,連續(xù)開啟1、2、3、4怎么都顯得不夠優(yōu)雅,于

    2024年02月20日
    瀏覽(19)
  • HAL庫STM32常用外設(shè)教程(一)—— 定時器 輸出PWM

    HAL庫STM32常用外設(shè)教程(一)—— 定時器 輸出PWM

    本篇文章為個人參考總結(jié)所用,如果錯誤還望指出。 涉及的知識: 1、STM32CubeMx的部分使用 2、PWM原理及常用概念 3、用單片機生成一定頻率的PWM 用到的軟件及單片機: 1、STM32CubeMx 2、IDE: MDK-Keil軟件 3、芯片:STM32F407ZGT6 4、開發(fā)板:正點原子探索者 注:不同型號的單片機實現(xiàn)

    2024年02月02日
    瀏覽(16)
  • 用STM32CubeMX配置輸出PWM信號控制多路舵機(HAL)

    用STM32CubeMX配置輸出PWM信號控制多路舵機(HAL)

    (1)編程平臺:Keil5 (2)CubeMX (1)本此使用最小核心板STM32F103C8T6為例 (2)一個舵機:SG90或者MG996等均可 (3)ST-link 下載器 (4)杜邦線若干 ????????舵機的控制一般需要一個20ms左右的時基脈沖,該脈沖的高電平部分一般為0.5ms-2.5ms范圍內(nèi)的角度控制脈沖部分,總間隔為2ms。以180度角度

    2023年04月09日
    瀏覽(26)
  • STM32-HAL庫08-TIM的輸出比較模式(輸出PWM的另一種方式)

    STM32-HAL庫08-TIM的輸出比較模式(輸出PWM的另一種方式)

    STM32F103C6T6最小系統(tǒng)板 STM32CUBEMX(HAL庫軟件) MDK5 示波器或者邏輯分析儀 通過定時器TIM的輸出比較模式得到預(yù)定頻率與占空比的PWM波形;其中定時器輸出比較模式與PWM模式的區(qū)別在于!?。?PWM模式在同一個TIM下所有輸出口的頻率一致不能單獨控制單個的頻率 ,而輸出比較模式

    2024年02月03日
    瀏覽(97)
  • 8.STM32F407之HAL庫——PWM筆記

    8.STM32F407之HAL庫——PWM筆記

    ??脈沖寬度調(diào)制(Pulse width modulation,PWM)技術(shù)。 ??是利用微處理器的數(shù)字輸出來對模擬電路進行控制的一種非常有效的技術(shù)。簡單來說就是對脈沖寬度的控制。 ??在單片機上就是通過控制引腳電平的周期性通斷,來產(chǎn)生規(guī)律的矩形波。并且周期和脈沖的寬度都是可調(diào)

    2024年02月13日
    瀏覽(19)
  • 【STM32+HAL+Proteus】系列學(xué)習(xí)教程---PWM(呼吸燈)

    【STM32+HAL+Proteus】系列學(xué)習(xí)教程---PWM(呼吸燈)

    1、利用定時器輸出PWM實現(xiàn)呼吸燈 2、學(xué)會STM32CubeMX軟件輸出PWM的配置 3、具體目標:利用定時器3的通道2(部分重映射到PB5管腳)輸出1KHz的矩形波,實現(xiàn)呼吸燈。 1、什么是PWM? ????????PWM (Pulse width modulation)脈沖寬度調(diào)制。PWM是通過編程控制輸出方波的頻率和占空比(高

    2024年04月23日
    瀏覽(19)
  • STM32 HAL庫 通用定時器介紹及相關(guān)應(yīng)用例程 定時器中斷 輸出PWM (點亮LED呼吸燈、輸出PWM、輸入捕獲) CubeMX

    STM32 HAL庫 通用定時器介紹及相關(guān)應(yīng)用例程 定時器中斷 輸出PWM (點亮LED呼吸燈、輸出PWM、輸入捕獲) CubeMX

    (部分圖引自于ATK) 前情提要(基本定時器) 點此進入 通用定時器類別 通用定時器和基本定時器相比大致的工作方式是相似的,不過通用定時器比基本定時器多了一些很好用的功能,比如: 外部輸入捕獲 輸出比較 輸出PWM 時鐘源 CubeMX為我們提供了配置時鐘的非常方便的工

    2024年04月15日
    瀏覽(39)
  • 【STM32】HAL庫配置PWM功能

    在STM32中HAL庫使用PWM功能需要配置什么函數(shù) HAL_TIM_PWM_Init() :初始化PWM定時器。 HAL_TIM_PWM_ConfigChannel() :配置PWM輸出通道的參數(shù),如通道號、極性、占空比等。 HAL_TIM_PWM_Start() :開始PWM輸出。 HAL_TIM_PWM_Stop() :停止PWM輸出。 同時,還需要配置GPIO引腳的功能,將其配置為對應(yīng)的

    2024年02月05日
    瀏覽(19)
  • STM32 互補PWM 帶死區(qū) HAL

    STM32 互補PWM 帶死區(qū) HAL

    ? DT_time=DT_data/F DT_time:死區(qū)時間 DT_data:寫入到單片機里的值 F:定時器主頻 例如:Timer1主頻64MHz,死區(qū)時間1us 1us=DT_data/64M DT_data=64 將64寫入sBreakDeadTimeConfig.DeadTime即可將死區(qū)設(shè)置為1us ?

    2024年02月15日
    瀏覽(23)
  • STM32 HAL庫 STM32CubeMX -- PWM(呼吸燈)

    STM32 HAL庫 STM32CubeMX -- PWM(呼吸燈)

    PWM (Pulse Width Modulation)就是對外輸出脈寬(即占空比)可調(diào)的方波信號,簡稱脈寬調(diào)制; 信號頻率由自動重裝寄存器ARR 的值決定,占空比由比較寄存器CCR 的值決定。 PWM模式1 : 在向上計數(shù)時 ,一旦TIMx_CNTTIMx_CCR1時通道1為有效電平,否則為無效電平; 在向下計數(shù)時 ,一旦

    2024年02月01日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包