chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

STM32CubeMX輸出可調(diào)頻率與占空比的PWM

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

void MX_TIM4_Init(uint16_t pre,uint16_t pul) //修改初始化函數(shù),改變頻率與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;//計數(shù)周期 (關鍵,若100的計數(shù)周期對于一些頻率跟占空比誤差大的話,可以自己計算更改調(diào)試計數(shù)周期大小) 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;//脈沖計數(shù)(關鍵) 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開始停止函數(shù)就可以啦。

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

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

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

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

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

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

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

    關注

    116

    文章

    5894

    瀏覽量

    226698
  • STM32
    +關注

    關注

    2313

    文章

    11195

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何使用MKE13Z測量輸入的PWM占空比頻率?

    如何使用MKE13Z測量輸入的PWM占空比頻率?我改如何配置相關設置與在中斷如何編寫處理?
    發(fā)表于 04-21 06:12

    如何在 STM32Cube CMake 工程中添加源文件

    STM32CubeMX 能夠很方便的導出 CMake 工程。例如,如下圖所示在 STM32CubeMX的 ToolChain/IDE 中選擇 Cmake。CMake 工程可以很容易被
    發(fā)表于 04-15 16:07 ?0次下載

    JL杰理AC696N開發(fā)板PWM波形生成與控制(1):頻率占空比配置

    32-JL杰理AC696N開發(fā)板PWM波形生成與控制(1):頻率占空比配置 引言 PWM調(diào)光、調(diào)速、甚至模擬發(fā)聲,這些場景做嵌入式的天天見。JL杰理AC696N的定時器可以靈活
    發(fā)表于 04-03 21:44

    A8651:低輸入電壓、可調(diào)頻率雙同步降壓調(diào)節(jié)器評測

    A8651:低輸入電壓、可調(diào)頻率雙同步降壓調(diào)節(jié)器評測 在電子設備的電源管理領域,高效、可靠且功能豐富的降壓調(diào)節(jié)器一直是工程師們追求的目標。A8651作為一款低輸入電壓、可調(diào)頻率的雙同步2A/2A降壓
    的頭像 發(fā)表于 03-30 14:10 ?141次閱讀

    LAT1574_如何在 STM32Cube CMake 工程中添加源文件

    STM32CubeMX 能夠很方便的導出 CMake 工程。例如,如下圖所示在 STM32CubeMX的 ToolChain/IDE 中選擇 CmakeCMake 工程可以很容易被
    發(fā)表于 03-11 10:46 ?0次下載

    工業(yè)自動化精準控制:8路PWM模塊(頻率可調(diào)+RS485/CAN隔離通訊)

    PWM 脈沖輸出模塊是基于脈沖寬度調(diào)制技術的工業(yè)級信號發(fā)生設備,核心功能是生成高頻、可編程、占空比可調(diào)的脈沖信號,通過控制脈沖占空比),實現(xiàn)
    的頭像 發(fā)表于 01-04 16:44 ?515次閱讀

    請問RT-Thread與stm32cubemx聯(lián)合開發(fā)的原理是什么?

    在使用RT-Thread與stm32cubemx聯(lián)合開發(fā)的原理是什么,cubemx在其中主要起到了哪些功能呢?
    發(fā)表于 10-11 15:49

    意法半導體:STM32CubeMX將不再集成到STM32CubeIDE中

    從2025年11月發(fā)布的版本開始,我們將僅以 獨立 版本的形式提供 STM32CubeIDE 和 STM32CubeMX 。 STM32CubeMX將不再集成到STM32CubeIDE
    的頭像 發(fā)表于 09-01 17:18 ?3937次閱讀

    請問怎么用HRTIM輸出可變占空比PWM?

    現(xiàn)在可以輸出單路PWM,但可變占空比PWM不知道怎么配置。請大佬幫助!
    發(fā)表于 07-25 08:16

    使用STM32CubeMX的時候創(chuàng)建的工程已經(jīng)使用的板載資源如何去掉?

    在使用STM32CubeMX的時候創(chuàng)建的工程已經(jīng)使用的板載資源如何去掉?在基于開發(fā)板進行工程創(chuàng)建的時候會把板載資源直接初始化,后面想要用不同的功能配置,如何把初始配置去掉?
    發(fā)表于 07-22 07:13

    對于在STM32CubeMx使用FMC中的NAND FLASH里面配置這些時間有什么說明嗎?

    對于在STM32CubeMx使用FMC中的NAND FLASH里面配置這些時間有什么說明嗎?
    發(fā)表于 07-21 07:07

    LM20146 6A、可調(diào)頻率同步降壓穩(wěn)壓器數(shù)據(jù)手冊

    LM20146 是一款功能齊全的可調(diào)頻率同步降壓穩(wěn)壓器,能夠 提供高達 6A 的連續(xù)輸出電流。電流模式控制環(huán)路可進行補償 幾乎可以與任何類型的輸出電容器保持穩(wěn)定。在大多數(shù)情況下,補償設備 只需要兩個
    的頭像 發(fā)表于 07-15 09:57 ?802次閱讀
    LM20146 6A、<b class='flag-5'>可調(diào)頻率</b>同步降壓穩(wěn)壓器數(shù)據(jù)手冊

    stm32cubemx上的g031j6的管腳和數(shù)據(jù)手冊不一致,請問哪個是正確的呢?

    stm32cubemx上的g031j6的管腳和數(shù)據(jù)手冊不一致,請問哪個是正確的呢?
    發(fā)表于 07-10 06:39

    STM32CubeMX配置STM32G070RBT6TR時為什么無法使能PVD中斷?

    STM32CubeMX 配置STM32G070RBT6TR時無法使能PVD中斷
    發(fā)表于 06-18 07:59

    STM32CubeMX配置STM32G070RBT6TR時無法使能PVD中斷怎么辦?

    STM32CubeMX 配置STM32G070RBT6TR時無法使能PVD中斷
    發(fā)表于 06-16 06:32