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

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

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

STM32CUBEMX(1)--PWM

嵌入式單片機(jī)MCU開發(fā) ? 來源:嵌入式單片機(jī)MCU開發(fā) ? 作者:嵌入式單片機(jī)MCU開 ? 2022-11-14 15:29 ? 次閱讀

概述

本篇文章主要介紹如何使用STM32CubeMX輸出PWM,并制作呼吸燈效果。

硬件準(zhǔn)備

首先需要準(zhǔn)備一個(gè)開發(fā)板,這里我準(zhǔn)備的是NUCLEO-F030R8的開發(fā)板:

在這里插入圖片描述

在這里插入圖片描述

選擇芯片型號(hào)

在這里插入圖片描述

在這里插入圖片描述

配置時(shí)鐘

HSE與LSE分別為外部高速時(shí)鐘和低速時(shí)鐘,在本文中使用內(nèi)置的時(shí)鐘源,故都選擇Disable選項(xiàng),如下所示:

在這里插入圖片描述

在這里插入圖片描述

配置時(shí)鐘樹

STM32F0的最高主頻到48M,所以配置48即可:

在這里插入圖片描述

在這里插入圖片描述

PWM配置

本次實(shí)驗(yàn)使用的是TIM3的通道1來輸出PWM波,選擇時(shí)鐘,并且選擇通道1的PWM模式。

在這里插入圖片描述

在這里插入圖片描述

配置PWM波的參數(shù)

在這里插入圖片描述

在這里插入圖片描述

PWM頻率計(jì)算如下所示

在這里插入圖片描述

在這里插入圖片描述

在上面配置TIM3參數(shù),預(yù)分頻系數(shù)設(shè)置為48-1, 自動(dòng)重載值設(shè)置為1000-1,那么PWM頻率為48,000,000/((48-1+1)*(1000-1+1))=1000Hz,即1KHz。

注意載芯片示意圖上會(huì)看到下圖PA6就是TIM3的通道1PWM波輸出口。

在這里插入圖片描述

在這里插入圖片描述

生成工程設(shè)置

注意在生產(chǎn)工程設(shè)置中不能出現(xiàn)中文,不然會(huì)報(bào)錯(cuò)。

在這里插入圖片描述

在這里插入圖片描述

代碼生成設(shè)置

最后設(shè)置生成獨(dú)立的初始化文件:

在這里插入圖片描述

在這里插入圖片描述

生成代碼

在這里插入圖片描述

在這里插入圖片描述

配置keil

在這里插入圖片描述

在這里插入圖片描述

代碼

在main.c中,先定義兩個(gè)變量存儲(chǔ)設(shè)置的占空比和模式

/* USER CODE BEGIN 1 */
uint16_t pwm_i =0;//占空比
uint16_t pwm_mode =0;//呼吸燈模式,1為增加,2為減少
  /* USER CODE END 1 */

使能TIM3的PWM Channel1 輸出。

/* USER CODE BEGIN 2 */
    //使能TIM3的PWM Channel1輸出。
    HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);
  /* USER CODE END 2 */

然后在while(1)中改變pwm_i的值,來實(shí)現(xiàn)呼吸效果。

/* USER CODE BEGIN WHILE */
  while (1)
  {
    if(pwm_mode)
    {
        __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, pwm_i--);
        if(pwm_i==0)
        pwm_mode=0;
    }
    else
    {
        __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, pwm_i++);
        if(pwm_i==1000)
        pwm_mode=1;
    }
    HAL_Delay(1);       

    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

演示效果

在這里插入圖片描述

在這里插入圖片描述

審核編輯:湯梓紅

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

    關(guān)注

    6030

    文章

    44489

    瀏覽量

    631968
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5118

    瀏覽量

    213164
  • stm32cubemx
    +關(guān)注

    關(guān)注

    5

    文章

    280

    瀏覽量

    14713
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32CubeMx入門教程(4):PWM應(yīng)用

    導(dǎo)語“使用STM32CubeMx配置定時(shí)器輸出PWM波,生成初始化代碼?!?/div>
    發(fā)表于 07-11 15:23 ?2239次閱讀
    <b class='flag-5'>STM32CubeMx</b>入門教程(4):<b class='flag-5'>PWM</b>應(yīng)用

    stm32cubemx教程

    stm32cubemx教程,需要學(xué)習(xí)的看看,免積分
    發(fā)表于 11-02 10:16 ?0次下載

    關(guān)于STM32CubeMX重大升級(jí)

    STM32CubeMX重大升級(jí)
    的頭像 發(fā)表于 03-04 14:05 ?3682次閱讀

    淺談stm32cubemx安裝教程

    STM32CubeMX介紹、下載與安裝
    的頭像 發(fā)表于 03-25 10:57 ?1.8w次閱讀
    淺談<b class='flag-5'>stm32cubemx</b>安裝教程

    STM32CubeMX學(xué)習(xí)筆記(一)---LED與蜂鳴器

    STM32CubeMX學(xué)習(xí)筆記(一)—點(diǎn)亮LED這里寫目錄標(biāo)題STM32CubeMX學(xué)習(xí)筆記(一)---點(diǎn)亮LED一、開發(fā)板二、STM32CubeMX工程創(chuàng)建1、打開
    發(fā)表于 12-05 13:21 ?19次下載
    <b class='flag-5'>STM32CubeMX</b>學(xué)習(xí)筆記(一)---LED與蜂鳴器

    stm32CubeMX的安裝和點(diǎn)亮流水燈

    LED燈1.題目介紹2.CubeMX介紹3.CubeMX安裝固件庫4.CubeMX新建工程本文是基于stm32CubeMX軟件點(diǎn)亮LED流水
    發(fā)表于 12-05 14:06 ?13次下載
    <b class='flag-5'>stm32CubeMX</b>的安裝和點(diǎn)亮流水燈

    STM32CubeMX Nucleo F767ZI 教程(2)

    STM32CubeMX Nucleo F767ZI 教程(2)STM32CubeMX Nucleo F767ZI 教程(1)STM32CubeMX Nucleo F767ZI 教程(2
    發(fā)表于 12-06 10:06 ?21次下載
    <b class='flag-5'>STM32CubeMX</b> Nucleo F767ZI 教程(2)

    STM32學(xué)習(xí)之STM32cubeMX軟件安裝與使用(附STM32cubeMX5.2.1下載地址)

    STM32學(xué)習(xí)之STM32cubeMX軟件安裝與使用(附STM32cubeMX5.2.1下載地址)
    發(fā)表于 12-07 11:51 ?28次下載
    <b class='flag-5'>STM32</b>學(xué)習(xí)之<b class='flag-5'>STM32cubeMX</b>軟件安裝與使用(附<b class='flag-5'>STM32cubeMX</b>5.2.1下載地址)

    STM32CUBEMX配置教程(一)基礎(chǔ)配置

    STM32CUBEMX配置教程合集(一)
    發(fā)表于 12-14 18:41 ?17次下載
    <b class='flag-5'>STM32CUBEMX</b>配置教程(一)基礎(chǔ)配置

    STM32CubeMX 窗口及工具介紹

    STM32CubeMX 系列教程之 STM32CubeMX 窗口及 STM32PackCreator 工具介紹,內(nèi)附詳細(xì)圖文介紹。
    發(fā)表于 12-14 18:51 ?26次下載
    <b class='flag-5'>STM32CubeMX</b> 窗口及工具介紹

    STM32CUbeMX之兩路互補(bǔ)pwm波 以及死區(qū)時(shí)間設(shè)置

    STM32CUbeMX之兩路互補(bǔ)pwm波 以及死區(qū)時(shí)間設(shè)置STM32CUbeMX的配置keil工程里的代碼實(shí)現(xiàn)驗(yàn)證結(jié)果芯片:stm32f103zet6STM32CUbeMX的配置
    發(fā)表于 12-22 19:40 ?31次下載
    <b class='flag-5'>STM32CUbeMX</b>之兩路互補(bǔ)<b class='flag-5'>pwm</b>波 以及死區(qū)時(shí)間設(shè)置

    stm32cubeMX結(jié)合matlab使用

    文章目錄前言一、軟件的安裝二、使用步驟1.先配置stm32cubeMX(我這里做的是一個(gè)串口通訊)2.matlab的配置3.工程生成總結(jié)前言今天帶大家把Matlab和STM32結(jié)合起來,強(qiáng)強(qiáng)聯(lián)合
    發(fā)表于 12-24 18:58 ?12次下載
    <b class='flag-5'>stm32cubeMX</b>結(jié)合matlab使用

    利用stm32cubemx創(chuàng)建stm32工程

    下面我將為大家分享一下我利用stm32cubemx這款工具開發(fā)stm32首先介紹一下STM32的分類:我選擇的這款是STM32F103VE,首先打開
    發(fā)表于 12-24 19:14 ?31次下載
    利用<b class='flag-5'>stm32cubemx</b>創(chuàng)建<b class='flag-5'>stm32</b>工程

    STM32入門1——STM32CubeMX使用說明

    STM32入門1——STM32相關(guān)資源介紹常用網(wǎng)站CubeMx使用介紹常用網(wǎng)站Keil5 : http://www.keil.com/.pack包下載.IAR : https
    發(fā)表于 12-27 18:38 ?13次下載
    <b class='flag-5'>STM32</b>入門<b class='flag-5'>1</b>——<b class='flag-5'>STM32CubeMX</b>使用說明

    STM8CubeMXSTM32CubeMX功能一樣嗎?

    STM8CubeMXSTM32CubeMX功能一樣嗎?
    的頭像 發(fā)表于 10-31 16:59 ?1720次閱讀
    STM8<b class='flag-5'>CubeMX</b>和<b class='flag-5'>STM32CubeMX</b>功能一樣嗎?