91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

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

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

3天內不再提示

STM32CubeMX輸出可調頻率與占空比的PWM

撞上電子 ? 2023-05-11 10:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1,新建工程,我選的是STM32F103ZET6芯片,選擇定時器的PWM功能。

bdeb2a98-ef9b-11ed-ba01-dac502259ad0.png

2、配置時鐘,我這里配的是內部時鐘,有需要的可以自己改。be058e4c-ef9b-11ed-ba01-dac502259ad0.png

3、配置定時器,默認就可以,因為代碼里面需要對配置的初始化代碼進行修改的,而修改后才可以實現該功能。be25d5ee-ef9b-11ed-ba01-dac502259ad0.png

4、生成代碼后,修改代碼,找到PWM初始化函數,修改為如下,注意要把初始化函數前面的 static 關鍵字也去掉,而且函數聲明也要跟著修改。

void MX_TIM4_Init(uint16_t pre,uint16_t pul) //修改初始化函數,改變頻率與PWM{ //占空比=Pulse/Period;頻率:f=48M/pre/per
TIM_MasterConfigTypeDef sMasterConfig; TIM_OC_InitTypeDef sConfigOC;
htim4.Instance = TIM4; htim4.Init.Prescaler =pre; //分頻(關鍵) htim4.Init.Period = 100-1;//計數周期 (關鍵,若100的計數周期對于一些頻率跟占空比誤差大的話,可以自己計算更改調試計數周期大小) htim4.Init.CounterMode = TIM_COUNTERMODE_UP; htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_PWM_Init(&htim4) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); }
sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = pul;//脈沖計數(關鍵) sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); }
HAL_TIM_MspPostInit(&htim4);
}

5、接著在自己需要的代碼里插入,PWM開始停止函數就可以啦。

HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1); //PWM開啟函數MX_TIM4_Init(uint16_t pre,uint16_t pul);//改變參數就可實現改變占空比跟頻率的目的了HAL_TIM_PWM_Stop(&htim4, TIM_CHANNEL_1);//停止PWM

這里我說一下核心部分: 占空比=(Pulse/Period)*100%; 頻率:f = CLK/Prescaler/Period; 影響PWM占空比跟頻率的參數這主要是Pulse,Prescaler,Period;頻率跟占空比都與Period(計數周期)有關,只要我們把計數周期定下來,修改Prescaler、跟Pulse這兩個值,就可以直接修改PWM的頻率跟占空比了。具體要多少的占空比跟頻率,就自己計算一下就可以了。 舉個例子說明一下:這里Period設為100,如果我要設定一個頻率為1500Hz、占空比5%的PWM波,只需要傳入參數Pulse=5(占空比=Pulse/Period*100%=(5/100)*100%=5%),Prescaler=320(f=系統頻率/分頻/計數周期=48M/320/100=1500Hz),邏輯分析儀采集結果如下圖:

be43cb3a-ef9b-11ed-ba01-dac502259ad0.png

補充一點:如果頻率要求快,而且精度要求高的,就選用晶振大的 STM32 系列,晶振大誤差就小,這里如果定好占空比的話,只調頻率可以調到很準確,或者定好頻率調占空比也是一樣,如果要同時改變頻率跟占空比,頻率高了就會有誤差了,所以選用大晶振可以減小點誤差。

附一個根據我這里的晶振大小算出來的頻率占空比表(已全部用示波器調試驗證):

be5c1f32-ef9b-11ed-ba01-dac502259ad0.png

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

    關注

    116

    文章

    5511

    瀏覽量

    219389
  • STM32
    +關注

    關注

    2293

    文章

    11032

    瀏覽量

    364880
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    STM32開發入門進階必備!《STM32嵌入式系統開發—基于STM32CubeMX和HAL庫》新書發布!

    近日,由華清遠見教育科技集團精心編撰的教育部高等學校電子信息類專業教學指導委員會規劃教材、普通高等教育電子信息類專業系列教材——《STM32嵌入式系統開發—基于STM32CubeMX和HAL庫》重磅
    的頭像 發表于 04-03 14:54 ?744次閱讀
    <b class='flag-5'>STM32</b>開發入門進階必備!《<b class='flag-5'>STM32</b>嵌入式系統開發—基于<b class='flag-5'>STM32CubeMX</b>和HAL庫》新書發布!

    請問STM32cubeMX中文版怎么設置?

    STM32cubeMX中文版怎么設置?
    發表于 03-13 06:12

    STM32CubeMX生成的FreeRTOS源碼格式如何優化?

    如圖,STM32CubeMX生成的FreeRTOS源碼格式有待優化,空格都是以箭頭的方式呈現,觀感很差。FreeRTOS官方下載的源碼則不存在這個問題,說明是STM32CubeMX生成源碼的過程出現的格式問題,希望ST官方能對此做下優化!
    發表于 03-10 08:04

    STM32CubeMX用于STM32配置和初始化C代碼生成

    電子發燒友網站提供《STM32CubeMX用于STM32配置和初始化C代碼生成.pdf》資料免費下載
    發表于 02-26 17:32 ?677次下載

    工程師開發利器:STM32CubeMX 與 eDesignSuite 的協同開發

    HAL 庫實現高效控制。示例:通過 CubeMX 配置 PWM 輸出和 ADC 采樣,配合 eDesignSuite 的電機驅動算法,快速實現電機調速功能。系統級驗證與優化利用 STM32C
    的頭像 發表于 02-26 14:07 ?740次閱讀
    工程師開發利器:<b class='flag-5'>STM32CubeMX</b> 與 eDesignSuite 的協同開發

    使用stm32cubeMX無法生成mdk工程文件?

    幾年前使用過cubemx,可以生成keil的工程文件。最近有個工程使用cubemx創建,結果只能生成stm32cubemx類型的文件,無法生成mdk的工程文件。 請教如何解決。 (我之前使用過多次
    發表于 01-04 20:03

    STM32CubeMX的菜單介紹

    相信初學者打開STM32CubeMX一定是一臉懵逼,里面都是全英文的,不知道從何入手。這里先給大家簡單講解一下。在新建工程這一欄里,我們最常用的是第一個,它會彈出一個芯片列表供你選擇,然后就會創建一
    的頭像 發表于 12-25 21:03 ?483次閱讀
    <b class='flag-5'>STM32CubeMX</b>的菜單介紹

    PWM調頻的區別 基于PWM的電源管理方案

    的基本原理是通過調節脈沖信號的占空比(即高電平時間占總時間的比例)來控制輸出電壓或電流的大小。它利用一系列寬度不同的脈沖信號來模擬所需的電壓或電流波形。 調頻則是通過改變信號的頻率來控
    的頭像 發表于 11-28 16:42 ?1136次閱讀

    調節PWM頻率的技巧

    調節技巧之前,了解PWM的基本原理是必要的。PWM是一種通過周期性地開啟和關閉開關來控制輸出的方法。PWM信號的占空比(即高電平時間與周期時
    的頭像 發表于 11-28 16:37 ?4549次閱讀

    如何選擇合適的PWM頻率

    PWM頻率,也稱為PWM的開關頻率,是指PWM信號在單位時間內的周期性變化次數。它直接影響到PWM
    的頭像 發表于 11-18 15:27 ?3993次閱讀

    STM32CubeMX為什么無法添加rt-thread-nano?

    STM32CubeMX 無法添加 rt-thread-nano
    發表于 09-27 06:17

    使用STM32CubeMX輸出PWM,并制作呼吸燈效果

    概述 本篇文章主要介紹如何使用STM32CubeMX輸出PWM,并制作呼吸燈效果。 硬件準備 首先需要準備一個開發板,這里我準備的是NUCLEO-F030R8的開發板: 選擇芯片型號 配置時鐘源
    發表于 09-04 10:38

    pwm頻率對電機有什么影響

    PWM(脈沖寬度調制)是一種廣泛應用于電機控制領域的技術,通過調整脈沖的占空比來實現對電機的精確控制。PWM頻率對電機的性能和效率有著重要的影響。本文將從以下幾個方面介紹
    的頭像 發表于 08-08 16:12 ?7330次閱讀

    PLC輸出pwm信號怎么看頻率

    一、PWM信號的基本概念 脈沖寬度調制(PWM) :PWM是一種對模擬信號進行數字控制的方法。它通過改變脈沖的寬度來控制信號的占空比,從而實現對輸出
    的頭像 發表于 08-08 15:32 ?2592次閱讀

    如何使用STM32CubeMX修改STM32Cube_FW_MP2?

    在該固件包中我找不到任何通過STM32CubeMX生成的.ioc文件
    發表于 07-24 06:17
    主站蜘蛛池模板: 丁香花在线影院观看在线播放 | 香蕉视频黄色片 | 被cao到合不拢腿腐男男 | 国产一级真人毛爱做毛片 | 插插插操操操 | 免费在线播放毛片 | 五月婷婷六月天 | 久久狠狠色噜噜狠狠狠狠97 | 清朝荒淫牲艳史在线播放 | 激情五月亚洲色图 | 亚洲卡一卡2卡三卡4卡国色 | 97就要鲁就要鲁夜夜爽 | 免费人成动漫在线播放r18 | 欧美日韩视频综合一区无弹窗 | 国产综合久久久久影院 | 黄色短视频软件 | 四虎www成人影院观看 | 亚洲视频欧美视频 | 久久久福利 | 国产色爽女小说免费看 | 小泽玛利亚在线观看123 | 亚洲一区二区三区四区在线 | 国产高清美女一级a毛片 | 色色视频网| 天堂网www天堂在线网 | 在线观看国产久青草 | 久久天天躁狠狠躁夜夜免费观看 | 黄色a级免费 | 开心激情五月婷婷 | 欧美一级在线观看播放 | 91久久天天躁狠狠躁夜夜 | 日本视频一区二区 | 欧美性色欧美a在线观看 | 日本色黄| 免费看曰批女人爽的视频网址 | 四虎影院色 | 91激情在线 | 国产偷啪视频一区 | 国产一卡二卡3卡4卡四卡在线视频 | 天天操天天摸天天爽 | 亚洲国产成人成上人色 |