色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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
    +關注

    關注

    114

    文章

    5181

    瀏覽量

    213809
  • STM32
    +關注

    關注

    2270

    文章

    10895

    瀏覽量

    355744
收藏 人收藏

    評論

    相關推薦

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

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

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

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

    PLC輸出pwm信號怎么看頻率

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

    STM32CUBEMX界面重影嚴重的原因?怎么解決?

    STM32CUBEMX 界面重影嚴重,有相同問題的嗎
    發表于 06-03 07:46

    STM32cubemx的庫和KEIL的庫有什么不同?

    STM32cubemx軟件有對應各個系列芯片的庫. 使用cubemx,生成代碼框架,比如生成MDK的代碼框架。但MDK也有自己的PACK。那么MDK的PACK和CUBEMX的庫有什么區別,兩者時什么關系呢?
    發表于 04-11 06:02

    STM32CubeMX生成代碼軟件卡死的原因?怎么解決?

    STM32CubeMX 生成代碼 軟件卡死!在生成代嗎時,一直卡死在如圖所示的狀態,進度條一直就不走了。試過多次,一直如此。請問如何解決該問題,原因可能是什么?STM32CubeMX版本5.1.0
    發表于 04-10 06:03

    STM32CubeMX STM32WL不能配置LoRaWAN的原因?

    STM32CubeMX 中使用STM32WL配置LoRaWAN時不能配置,請問為什么?
    發表于 04-02 07:47

    一文帶你了解PWM原理、頻率占空比

    時間,假設周期T為 1s 那么頻率就是 1Hz 那么高電平時間0.5s ,低電平時間0.5s 總的占空比就是 0.5 /1 =50%。PWM原理以單片機為例,我們知道,單片機的IO口輸出
    發表于 03-27 14:12

    STM32CubeMX安裝最新版本V6.9,Motor Control Workbench生成項目工程總是顯示STM32CubeMX not found的原因?

    STM32CubeMX安裝最新版本V6.9,但Motor Control Workbench生成項目工程,總是顯示STM32CubeMX not found?
    發表于 03-14 07:28

    STM32CUBEMX界面重影嚴重怎么解決?

    STM32CUBEMX 界面重影嚴重,有相同問題的嗎
    發表于 03-14 07:13

    如何使用STM32CubeMx配置STM32MP135的LTDC外設?

    請問一下,如何使用STM32CubeMx配置STM32MP135的LTDC外設,打開后LTDC配置項是空的
    發表于 03-11 07:37

    STM32H750如何使用DMA改變PWM占空比

    我想在PWM上溢和下溢時,從數組里讀出數據更新PWM占空比STM32CubeMX配置沒有找到DMA的觸發源,及源地址的設定
    發表于 03-06 07:36

    pwm占空比和電壓的關系 pid輸出pwm占空比怎么聯系

    PWM(脈寬調制)指的是通過改變周期內的高電平時長來調整信號的占空比占空比是指高電平時長與周期時長的比值,常用百分比來表示。PWM的主要應用是在調速控制、電源控制以及通信傳輸等領域。
    的頭像 發表于 02-02 17:17 ?6657次閱讀

    pwm頻率占空比的計算公式

    PWM(脈寬調制)是一種常用的控制技術,在電子系統中廣泛應用。PWM頻率占空比是其重要參數之一,對于設計和優化PWM控制系統非常重要。本
    的頭像 發表于 12-28 11:40 ?2w次閱讀

    怎么實現dsp芯片輸出占空比固定的pwm波形

    實現DSP芯片輸出占空比固定的PWM波形需要以下步驟:定義占空比、設置計時器、計算周期和持續時間、更新占空比
    的頭像 發表于 12-26 17:28 ?2690次閱讀
    主站蜘蛛池模板: 午夜十八岁禁| 精品夜夜澡人妻无码AV| 最近中文字幕无吗免费高清| 无套内射在线观看THEPORN| 麻豆精品传媒卡一卡二传媒短视频| 秋霞电影在线观看午夜伦| 动漫美女被爆挤奶歪歪漫画| 2019午夜福合集不打码| 精品AV无码一二三区视频| 国产午夜a理论毛片在线影院| 啊灬啊灬啊灬快高潮视频 | 尹人久久大香找蕉综合影院| 入禽太深免费观看| 国产精品外围在线观看| 综合激情区视频一区视频二区| 一本大道香蕉中文在线视频观看| 亚洲第一色网| 浪荡女天天不停挨CAO日常视 | 伊人草| 中文字幕一区中文亚洲| 1V1各种PLAY女主被肉| 97色伦图区97色伦综合图区| 99RE8国产这里只有精品| 99久久精品久久久久久清纯| 成年免费三级视频| www黄色大片| 国产精品JIZZ在线观看A片| 国产免费内射又粗又爽密桃视频| 国产午夜精品久久久久婷婷| 红番阁免费观看| 美女被免费喷白浆视频| 青青草干免费线观看| 手机移动oa| 日韩综合网| 亚洲精品免费在线视频| 翁公与小莹在客厅激情| 怡春院院日本一区二区久久| 99视频一区| 芭乐视频网页版在线观看| 国产精品无码久久久久不卡| 久久久久久久伊人电影|