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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

4、生成代碼后,修改代碼,找到PWM初始化函數(shù),修改為如下,注意要把初始化函數(shù)前面的 static 關(guān)鍵字也去掉,而且函數(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; //分頻(關(guān)鍵) htim4.Init.Period = 100-1;//計(jì)數(shù)周期 (關(guān)鍵,若100的計(jì)數(shù)周期對(duì)于一些頻率跟占空比誤差大的話,可以自己計(jì)算更改調(diào)試計(jì)數(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;//脈沖計(jì)數(shù)(關(guān)鍵) 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開(kāi)始停止函數(shù)就可以啦。

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

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

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

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

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

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

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

    關(guān)注

    116

    文章

    5842

    瀏覽量

    223670
  • STM32
    +關(guān)注

    關(guān)注

    2305

    文章

    11118

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    請(qǐng)問(wèn)RT-Thread與stm32cubemx聯(lián)合開(kāi)發(fā)的原理是什么?

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

    意法半導(dǎo)體:STM32CubeMX將不再集成到STM32CubeIDE中

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

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

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

    STM32CubeMX配置STM32G070RBT6TR時(shí)為什么無(wú)法使能PVD中斷?

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

    STM32開(kāi)發(fā)入門進(jìn)階必備!《STM32嵌入式系統(tǒng)開(kāi)發(fā)—基于STM32CubeMX和HAL庫(kù)》新書發(fā)布!

    近日,由華清遠(yuǎn)見(jiàn)教育科技集團(tuán)精心編撰的教育部高等學(xué)校電子信息類專業(yè)教學(xué)指導(dǎo)委員會(huì)規(guī)劃教材、普通高等教育電子信息類專業(yè)系列教材——《STM32嵌入式系統(tǒng)開(kāi)發(fā)—基于STM32CubeMX和HAL庫(kù)》重磅
    的頭像 發(fā)表于 04-03 14:54 ?1350次閱讀
    <b class='flag-5'>STM32</b>開(kāi)發(fā)入門進(jìn)階必備!《<b class='flag-5'>STM32</b>嵌入式系統(tǒng)開(kāi)發(fā)—基于<b class='flag-5'>STM32CubeMX</b>和HAL庫(kù)》新書發(fā)布!

    請(qǐng)問(wèn)STM32cubeMX中文版怎么設(shè)置?

    STM32cubeMX中文版怎么設(shè)置?
    發(fā)表于 03-13 06:12

    STM32CubeMX生成代碼就會(huì)覆蓋CMakeLists.txt文件,怎么解決?

    請(qǐng)教一下用STM32CubeMX生成代碼后,我自己加了一個(gè)頭文件和源文件,這些自己加的文件不是要配置到CMakeLists.txt編譯么,但下載在用STM32CubeMX生成成代碼,就會(huì)覆蓋CMakeLists.txt文件,這種一般怎么解決
    發(fā)表于 03-12 08:03

    STM32CubeMX無(wú)法打開(kāi).ioc文件怎么解決?

    我的STM32CubeMX不能打開(kāi)別人的工程文件,雙擊打開(kāi).ioc文件后會(huì)全白,只剩左上角有個(gè)home,什么也點(diǎn)不了,但是我自己可以創(chuàng)建工程,也可以打開(kāi)我自己創(chuàng)建的工程。請(qǐng)問(wèn)我該如何解決
    發(fā)表于 03-12 07:39

    myST賬號(hào)無(wú)法注冊(cè)導(dǎo)致stm32cubemx無(wú)法下載hal庫(kù)的固件包,為什么?

    myST賬號(hào)無(wú)法注冊(cè)導(dǎo)致stm32cubemx無(wú)法下載hal庫(kù)的固件包,myST賬號(hào)注冊(cè)卡在最后的郵箱驗(yàn)證環(huán)節(jié),一直卡著無(wú)法注冊(cè)通過(guò) 很急很急!以前stm32cubemx都不需要登錄myST賬號(hào)就能下載固件包了,為什么現(xiàn)在搞個(gè)這種抽象東西出來(lái)?還不能注冊(cè)賬號(hào)
    發(fā)表于 03-11 06:17

    STM32CubeMX生成的FreeRTOS源碼格式如何優(yōu)化?

    如圖,STM32CubeMX生成的FreeRTOS源碼格式有待優(yōu)化,空格都是以箭頭的方式呈現(xiàn),觀感很差。FreeRTOS官方下載的源碼則不存在這個(gè)問(wèn)題,說(shuō)明是STM32CubeMX生成源碼的過(guò)程出現(xiàn)的格式問(wèn)題,希望ST官方能對(duì)此做下優(yōu)化!
    發(fā)表于 03-10 08:04

    使用STM32CubeMX生成CMake工程中的FLASH.ld被更改怎么解決?

    使用STM32CubeMX生成CMake工程之后,對(duì)STM32xxxx_FLASH.ld進(jìn)行了修改。然后再次使用STM32CubeMX對(duì)工程進(jìn)行修改的時(shí)候,STM32xxxx_FLAS
    發(fā)表于 03-10 06:52

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

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

    工程師開(kāi)發(fā)利器:STM32CubeMX 與 eDesignSuite 的協(xié)同開(kāi)發(fā)

    HAL 庫(kù)實(shí)現(xiàn)高效控制。示例:通過(guò) CubeMX 配置 PWM 輸出和 ADC 采樣,配合 eDesignSuite 的電機(jī)驅(qū)動(dòng)算法,快速實(shí)現(xiàn)電機(jī)調(diào)速功能。系統(tǒng)級(jí)驗(yàn)證與優(yōu)化利用 STM32C
    的頭像 發(fā)表于 02-26 14:07 ?1098次閱讀
    工程師開(kāi)發(fā)利器:<b class='flag-5'>STM32CubeMX</b> 與 eDesignSuite 的協(xié)同開(kāi)發(fā)

    使用stm32cubeMX無(wú)法生成mdk工程文件?

    幾年前使用過(guò)cubemx,可以生成keil的工程文件。最近有個(gè)工程使用cubemx創(chuàng)建,結(jié)果只能生成stm32cubemx類型的文件,無(wú)法生成mdk的工程文件。 請(qǐng)教如何解決。 (我之前使用過(guò)多次
    發(fā)表于 01-04 20:03

    STM32CubeMX的菜單介紹

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