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

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

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

3天內不再提示

GD32F303固件庫開發(12)----輸出PWM及修改PWM頻率與占空比

嵌入式單片機MCU開發 ? 來源:嵌入式單片機MCU開發 ? 作者:嵌入式單片機MCU開 ? 2022-11-30 15:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概述

本章STM32CUBEMX配置STM32F103,并且在GD32F303中進行開發,同時通過開發板內進行驗證。 本章主要配置定時器輸出PWM,同時演示PWM頻率與占空比。 查閱手冊可以得知,PB11為定時器1的通道3,對應ST的為定時器2的通道4。 需要GD樣片的可以加QUN申請:615061293 。

在這里插入圖片描述

生成例程

這里準備了自己繪制的開發板進行驗證。

使用PB11進行驗證。

在這里插入圖片描述

工作過程

在ST中查看下面工作原理圖可以得知,時鐘可以由內部Internal clock產生或者外部ETR。 同時可以設置復位,使能,向上/向下,計數。

在這里插入圖片描述

在GD中,內部時鐘源 TIMER_CK。

在這里插入圖片描述

同時分頻只能為1、2、4。

在這里插入圖片描述

查看ST下列文檔可以得知,定時器主要有TIMx_CNT、TIMx_PSC、TIMx_ARR控制。 同時預分頻器(TIMx_PSC)范圍位1-65535。

在這里插入圖片描述

查看TIMx_PSC說明,可以得知定時器頻率為 fCK_PSC / (PSC[15:0] + 1)

在這里插入圖片描述

可以看到,當psc設置為不同的值的時候,計數頻率也會發生改變。

在這里插入圖片描述

查看GD的文檔,可以得知,控制 PSC_CLK可以進行分頻,定時器頻率為 fPSC_CLK / (PSC+ 1)。

。

在這里插入圖片描述

在這里插入圖片描述

在ST中,同時ARR可以改變計數值,當寫入的arr越大,他的頻率越低,計數周期是ARR+1。

在這里插入圖片描述

同時周期由TIMERx_CAR決定,pwm占空比由TIMERx_CHxCV決定。

在這里插入圖片描述

ARR計數值如下所示。

在這里插入圖片描述

在這里插入圖片描述

占空比定義如下所示。

在這里插入圖片描述

PWM頻率計算如下所示。 其中ARR在GD中中用CAR去定義了。

在這里插入圖片描述

配置TIM參數,預分頻系數設置為120-1, 自動重載值設置為1000-1,那么PWM頻率為120,000,000/((120-1+1)*(1000-1+1))=1000Hz,即1KHz。

初始化代碼

/*使能TIMER1時鐘 */
        rcu_periph_clock_enable(RCU_TIMER1);
        /*使能GPIOB時鐘 */
        rcu_periph_clock_enable(RCU_GPIOB);
        /*使能復用時鐘 */
    rcu_periph_clock_enable(RCU_AF);

        /*設置io口,設置為復用模式 */
    gpio_init(GPIOB,GPIO_MODE_AF_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_11);
        /*TIMER1全部重映射*/
        gpio_pin_remap_config (GPIO_TIMER1_FULL_REMAP, ENABLE);




        timer_oc_parameter_struct timer_ocintpara;
    timer_parameter_struct timer_initpara;


        /*定時器復位 */
    timer_deinit(TIMER1);

    /* TIMER1 configuration */
        /*時鐘分頻系數 */
    timer_initpara.prescaler         = 120-1;
    /*邊沿對齊 */
        timer_initpara.alignedmode       = TIMER_COUNTER_EDGE;
    /*上升計數 */
        timer_initpara.counterdirection  = TIMER_COUNTER_UP;
    /*計數值 */
        timer_initpara.period            = 1000-1;
    /*根據prescaler,clockdivision最終該定時器時鐘評率為1M */
        timer_initpara.clockdivision     = TIMER_CKDIV_DIV1;
    /*重復計數器的值 */
        timer_initpara.repetitioncounter = 0;
    /* */
        timer_init(TIMER1,&timer_initpara);

    /* CH0,CH1 and CH2 configuration in PWM mode */
        /*是否使能輸出 */
    timer_ocintpara.outputstate  = TIMER_CCX_ENABLE;
    /*是否互補通道輸出 */
        timer_ocintpara.outputnstate = TIMER_CCXN_DISABLE;
    /*輸出極性 */
        timer_ocintpara.ocpolarity   = TIMER_OC_POLARITY_HIGH;
    /*輸出死區延遲的極性 */
        timer_ocintpara.ocnpolarity  = TIMER_OCN_POLARITY_HIGH;
    /*空閑狀態下通道輸出極性通道 */
        timer_ocintpara.ocidlestate  = TIMER_OC_IDLE_STATE_LOW;
    /*空閑時互補通道輸出極性 */
        timer_ocintpara.ocnidlestate = TIMER_OCN_IDLE_STATE_LOW;

    /*配置通道 */
        timer_channel_output_config(TIMER1,TIMER_CH_3,&timer_ocintpara);



    /* CH3 configuration in PWM mode0,duty cycle 30% */
    /*設置閾值(比較值,調節占空比的時候調節這個值) */
        timer_channel_output_pulse_value_config(TIMER1,TIMER_CH_3,300);
    /*輸出模式配置 */
        timer_channel_output_mode_config(TIMER1,TIMER_CH_3,TIMER_OC_MODE_PWM0);
    /*不使用影子寄存器 */
        timer_channel_output_shadow_config(TIMER1,TIMER_CH_3,TIMER_OC_SHADOW_DISABLE);



    /* 使能定時器自動重裝載值 */
    timer_auto_reload_shadow_enable(TIMER1);
    /* 使能定時器 */
    timer_enable(TIMER1);

由于上述設置計數值位1000,那么設置30%的正占空比的ccr應該配置為30%*1000=300。

/ *設置閾值(比較值,調節占空比的時候調節這個值) * / timer_channel_output_pulse_value_config(TIMER1,TIMER_CH_3,300);

在這里插入圖片描述

修改PWM頻率

修改PWM頻率可以修改PSC或者ARR來進行改變。

在這里插入圖片描述

設置TIM自動重新加載寄存器值。 初始設置為PSC為120-1,ARR為1000-1,若設置為500-1,那么他的頻率應該是120M/(120-1+1)(500-1+1)=2k 占空比為300/500*100%=60%

timer_autoreload_value_config (TIMER1, 500-1);

在這里插入圖片描述

在運行時設置TIM Prescaler。 初始設置為ARR為500-1,PSC為120-1,若設置為60-1,那么他的頻率應該是120M/(60-1+1)(500-1+1)=4k 占空比為300/500*100%=60%

timer_prescaler_config (TIMER1, 60-1, TIMER_PSC_RELOAD_NOW);

在這里插入圖片描述

審核編輯:湯梓紅

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

    關注

    116

    文章

    5522

    瀏覽量

    219467
  • 固件庫
    +關注

    關注

    2

    文章

    98

    瀏覽量

    15280
  • stm32cubemx
    +關注

    關注

    5

    文章

    286

    瀏覽量

    16284
  • gd32f303
    +關注

    關注

    4

    文章

    38

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    GD32F303固件開發(14)----IIC之配置OLED

    本章配置GD32F303使用IIC進行驅動SSD1306的12864OLED。
    的頭像 發表于 07-26 08:55 ?4671次閱讀
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>庫</b><b class='flag-5'>開發</b>(14)----IIC之配置OLED

    GD32F303】星空派介紹

    GD32官方資料的基礎上,提供GD32F303的庫函數開發資料、例程講解、視頻課程等。同時還提供RT-Thread相關的驅動開發、應用開發
    發表于 09-11 17:55

    關于GD32F303PWM輸入捕獲精度問題

    有大佬測過GD32F303最高能對多高頻率PWM進行捕獲嗎?最近做的PWM輸入捕獲,對周期為10ms以下的PWM捕獲開始出現明顯誤差,對比
    發表于 10-26 09:54

    GD32F30x系列固件

    GD32F30x系列固件包含GD32F303GD32F305、GD32F307三個系列的最新
    發表于 08-21 09:00 ?167次下載

    GD32F303固件開發(1)----前期準備與燒錄

    在這使用STM32CUBEMX進行配置STM32F103,移植到兆易創新GD32F303,然后進行測試。需要樣片的可以加Qun申請:615061293。
    的頭像 發表于 11-23 11:15 ?3751次閱讀
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>庫</b><b class='flag-5'>開發</b>(1)----前期準備與燒錄

    GD32F303固件開發(3)----使用固件點亮LED

    概述 在GD的官網中有許多的DEMO文件,可以使用開發板的案例或者對應的MCU標準固件。需要樣片的可以加群申請:6_15061293。 下圖是GD
    的頭像 發表于 11-23 17:36 ?3697次閱讀
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>庫</b><b class='flag-5'>開發</b>(3)----使用<b class='flag-5'>固件</b><b class='flag-5'>庫</b>點亮LED

    GD32F303固件開發(5)----GPIO輸出模式,速率測試、開漏和輸出說明

    以STM32CUBEMX創建STM32F103工程,同時移植在GD32F303中,同時通過GD32303C_START開發板內進行驗證。
    的頭像 發表于 11-25 15:32 ?3803次閱讀
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>庫</b><b class='flag-5'>開發</b>(5)----GPIO<b class='flag-5'>輸出</b>模式,速率測試、開漏和<b class='flag-5'>輸出</b>說明

    STM32CUBEMX開發GD32F30312)----輸出PWM修改PWM頻率占空比

    本章STM32CUBEMX配置STM32F103,并且在GD32F303中進行開發,同時通過開發板內進行驗證。 本章主要配置定時器輸出
    的頭像 發表于 11-30 14:40 ?4805次閱讀
    STM32CUBEMX<b class='flag-5'>開發</b><b class='flag-5'>GD32F303</b>(<b class='flag-5'>12</b>)----<b class='flag-5'>輸出</b><b class='flag-5'>PWM</b>及<b class='flag-5'>修改</b><b class='flag-5'>PWM</b><b class='flag-5'>頻率</b>與<b class='flag-5'>占空比</b>

    STM32CUBEMX開發GD32F303(13)----定時器TIM捕獲PWM測量頻率占空比

    概述 本章STM32CUBEMX配置STM32F103,并且在GD32F303中進行開發,同時通過開發板內進行驗證。 本章STM32CUBEMX配置STM32
    的頭像 發表于 12-07 10:15 ?4254次閱讀
    STM32CUBEMX<b class='flag-5'>開發</b><b class='flag-5'>GD32F303</b>(13)----定時器TIM捕獲<b class='flag-5'>PWM</b>測量<b class='flag-5'>頻率</b>與<b class='flag-5'>占空比</b>

    GD32F303固件開發(13)----定時器TIM捕獲PWM測量頻率占空比

    本章配置GD32F303輸出PWM,同時使用TIM測量PWM頻率和正占空比。 查閱手冊可以得知,
    的頭像 發表于 12-07 10:19 ?7037次閱讀
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>庫</b><b class='flag-5'>開發</b>(13)----定時器TIM捕獲<b class='flag-5'>PWM</b>測量<b class='flag-5'>頻率</b>與<b class='flag-5'>占空比</b>

    AN029 GD32F103程序在GD32F303GD32F403芯片上運行DSP

    AN029 GD32F103程序在GD32F303GD32F403芯片上運行DSP
    發表于 02-27 18:33 ?0次下載
    AN029 <b class='flag-5'>GD32F</b>103程序在<b class='flag-5'>GD32F303</b>和<b class='flag-5'>GD32F</b>403芯片上運行DSP

    GD32F303固件開發(15)----外部中斷EXTI

    本章配置GD32F303使用EXTI進行驅動LED。
    的頭像 發表于 07-26 15:56 ?2316次閱讀
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>庫</b><b class='flag-5'>開發</b>(15)----外部中斷EXTI

    GD32F303固件開發

    的可以加群申請:615061293 。 GD32F303固件開發(1)----前期準備與燒錄 使用GDLINK、jlink、串口下載程序到GD
    的頭像 發表于 07-27 09:27 ?1799次閱讀
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>庫</b><b class='flag-5'>開發</b>

    STM32CUBEMX開發GD32F303

    在這使用STM32CUBEMX進行配置STM32F103,移植到兆易創新GD32F303,然后進行測試。
    的頭像 發表于 07-27 09:32 ?2259次閱讀
    STM32CUBEMX<b class='flag-5'>開發</b><b class='flag-5'>GD32F303</b>

    GD32 MCU 移植教程】2、從 GD32F303 移植到 GD32F503

    GD32E503 系列是 GD 推出的 Cortex_M33 系列產品,該系列資源上與 GD32F303 兼容度非常高,本應用筆記旨在幫助您快速將應用程序從 GD32F303 系列微控
    的頭像 發表于 08-31 09:36 ?2214次閱讀
    【<b class='flag-5'>GD</b>32 MCU 移植教程】2、從 <b class='flag-5'>GD32F303</b> 移植到 <b class='flag-5'>GD32F</b>503
    主站蜘蛛池模板: 日韩毛片在线 | 人人人人草| 精品一区二区三区在线视频 | 美女扒开尿口给男人桶视频免费 | 特黄特a级特别特级特毛片 特黄特色大片免费播放路01 | 黄免费视频 | 国产黄色a三级三级三级 | 色黄网站 | 欧美成人生活片 | 午夜精品视频 | 欧美成人免费 | 赛罗奥特曼银河帝国普通话免费版 | 天天干天天狠 | 美国bj69video18 | 日本三级日本三级日本三级极 | 色妇女影院 | 1024亚洲视频 | 3344在线观看永久免费 | 人人搞人人搞 | 成人二区 | 韩国床戏合集三小时hd中字 | 婷婷亚洲综合五月天在线 | 亚洲最大毛片 | 欧美性一区| 欧美一区二区三区免费高 | 1024手机在线观看视频 | 国模私拍一区二区三区 | 嗯好舒服好爽好快好大 | 亚洲视频一区在线观看 | 欧美潘金莲一级风流片a级 欧美片欧美日韩国产综合片 | 欧美一级视频免费 | 黄视频在线观看网站 | 永久看免费bbbbb视频 | 永久免费观看黄网站 | 69pao强力打造免费高速 | 午夜视频久久 | 涩综合| 欧美高清一区 | 视频在线观看免费网站 | 午夜寂寞影院视频观看 | h网站在线免费观看 |