精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

詳解stm32的定時(shí)器8輸出PWM

硬件攻城獅 ? 來源:硬件攻城獅 ? 2023-01-05 11:01 ? 次閱讀

我在定時(shí)器3的例程上面改,改了很久都沒改好,百度看別人說定時(shí)器1和定時(shí)器8需要額外的指令用于PWM輸出,今天下午硬件的人來要東西了,來不及研究了,于是網(wǎng)上找了個(gè)定時(shí)器8的4個(gè)通道全部可以輸出的例程記錄一下,已經(jīng)經(jīng)過本人試驗(yàn)是OK的。

1.調(diào)用:

TIM8_PWM_Init(1439 ,0);    //不分頻。PWM頻率=72000000/1440=50Khz

2.函數(shù)源碼:

//TIM8 PWM部分初始化 
//PWM輸出初始化
//arr:自動(dòng)重裝值
//psc:時(shí)鐘預(yù)分頻數(shù)
void TIM8_PWM_Init(u16 arr,u16 psc)
{  
  GPIO_InitTypeDef GPIO_InitStructure;
  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  TIM_OCInitTypeDef  TIM_OCInitStructure;


  RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8, ENABLE); //使能定時(shí)器3時(shí)鐘
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  //使能GPIO外設(shè)和AFIO復(fù)用功能模塊時(shí)鐘
  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9; //TIM_CH2
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //復(fù)用推挽輸出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化GPIO
  
  //初始化TIM8
  TIM_TimeBaseStructure.TIM_Period = arr; //設(shè)置在下一個(gè)更新事件裝入活動(dòng)的自動(dòng)重裝載寄存器周期的值
  TIM_TimeBaseStructure.TIM_Prescaler =psc; //設(shè)置用來作為TIMx時(shí)鐘頻率除數(shù)的預(yù)分頻值
  TIM_TimeBaseStructure.TIM_ClockDivision = 0; //設(shè)置時(shí)鐘分割:TDTS = Tck_tim
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上計(jì)數(shù)模式
  TIM_TimeBaseInit(TIM8, &TIM_TimeBaseStructure); //根據(jù)TIM_TimeBaseInitStruct中指定的參數(shù)初始化TIMx的時(shí)間基數(shù)單位


  //初始化TIM8 Channel2 PWM模式  
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //選擇定時(shí)器模式:TIM脈沖寬度調(diào)制模式2
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
  TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset ;
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low ; //輸出極性:TIM輸出比較極性高
  TIM_OC1Init(TIM8, &TIM_OCInitStructure);  //根據(jù)T指定的參數(shù)初始化外設(shè)TIM8 OC2


  TIM_OC1PreloadConfig(TIM8, TIM_OCPreload_Enable);  //使能TIM8在CCR2上的預(yù)裝載寄存器


  TIM_SetCompare1(TIM8,474);


  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //選擇定時(shí)器模式:TIM脈沖寬度調(diào)制模式2
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
  TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset ;
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low ; //輸出極性:TIM輸出比較極性高
  TIM_OC2Init(TIM8, &TIM_OCInitStructure);  //根據(jù)T指定的參數(shù)初始化外設(shè)TIM8 OC2


  TIM_OC2PreloadConfig(TIM8, TIM_OCPreload_Enable);  //使能TIM8在CCR2上的預(yù)裝載寄存器


  TIM_SetCompare2(TIM8,700);


  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //選擇定時(shí)器模式:TIM脈沖寬度調(diào)制模式2
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
  TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset ;
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low ; //輸出極性:TIM輸出比較極性高
  TIM_OC3Init(TIM8, &TIM_OCInitStructure);  //根據(jù)T指定的參數(shù)初始化外設(shè)TIM8 OC2


  TIM_OC3PreloadConfig(TIM8, TIM_OCPreload_Enable);  //使能TIM8在CCR2上的預(yù)裝載寄存器


  TIM_SetCompare3(TIM8,900);


  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //選擇定時(shí)器模式:TIM脈沖寬度調(diào)制模式2
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
  TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset ;
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low ; //輸出極性:TIM輸出比較極性高
  TIM_OC4Init(TIM8, &TIM_OCInitStructure);  //根據(jù)T指定的參數(shù)初始化外設(shè)TIM8 OC2


  TIM_OC4PreloadConfig(TIM8, TIM_OCPreload_Enable);  //使能TIM8在CCR2上的預(yù)裝載寄存器


  TIM_SetCompare4(TIM8,1200);


  TIM_Cmd(TIM8, ENABLE);  //不使能TIM8


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

    關(guān)注

    114

    文章

    5153

    瀏覽量

    213454
  • STM32
    +關(guān)注

    關(guān)注

    2266

    文章

    10876

    瀏覽量

    354928
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3241

    瀏覽量

    114516
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4308

    瀏覽量

    62445

原文標(biāo)題:stm32的定時(shí)器8輸出PWM

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    STM32定時(shí)器(一)PWM輸出

    STM32定時(shí)器分類眾多,按照內(nèi)核、外核標(biāo)準(zhǔn)分為兩部分:核內(nèi)定時(shí)器+核外定時(shí)器
    的頭像 發(fā)表于 07-21 14:51 ?4680次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>定時(shí)器</b>(一)<b class='flag-5'>PWM</b><b class='flag-5'>輸出</b>

    介紹通過STM32定時(shí)器輸出PWM

    目錄01、PWM介紹02、STM32的管腳復(fù)用03、STM32輸出PWM原理04、STM32
    發(fā)表于 08-04 08:21

    STM32定時(shí)器詳解

    結(jié)合起來使用的話可以實(shí)現(xiàn)非常豐富的功能,可以測量輸入信號的脈沖寬度,可以生產(chǎn)輸出波形。定時(shí)器生產(chǎn) PWM 控制電機(jī)狀態(tài)是工業(yè)控制普遍方法,這方面知識非常有必要深入了解。STM32F4
    發(fā)表于 08-18 06:17

    STM32定時(shí)器配置、PWM輸出比較詳解、電機(jī)PWM輸出配置 精選資料分享

    STM32定時(shí)器配置詳解STM32擁有三種定時(shí)器基本功能其通用定時(shí)器可以被用于:測量輸入信號的脈
    發(fā)表于 08-19 06:47

    stm32通用定時(shí)器原理及編程技巧

    STM32 系列的CPU,有多達(dá)8個(gè)定時(shí)器,其中TIM1和TIM8是能夠產(chǎn)生三對PWM互補(bǔ)輸出
    的頭像 發(fā)表于 11-06 09:37 ?3.7w次閱讀
    <b class='flag-5'>stm32</b>通用<b class='flag-5'>定時(shí)器</b>原理及編程技巧

    詳解STM32定時(shí)器的時(shí)鐘源

    STM32中有多達(dá)8個(gè)定時(shí)器,其中TIM1和TIM8是能夠產(chǎn)生三對PWM互補(bǔ)輸出的高級
    的頭像 發(fā)表于 09-03 17:14 ?2.6w次閱讀

    STM32單片機(jī)如何通過定時(shí)器的控制輸出PWM

    STM32F103ZET6里共有8個(gè)定時(shí)器,其中高級定時(shí)器有TIM1-TIM5、TIM8,共6個(gè)。 我這里
    發(fā)表于 11-22 15:56 ?8242次閱讀
    <b class='flag-5'>STM32</b>單片機(jī)如何通過<b class='flag-5'>定時(shí)器</b>的控制<b class='flag-5'>輸出</b><b class='flag-5'>PWM</b>

    如何通過STM32定時(shí)器輸出PWM

    ? 本文將介紹通過STM32定時(shí)器輸出PWM,如果對定時(shí)器不太熟悉的同學(xué)可以看下之前的文章《STM32
    的頭像 發(fā)表于 02-20 15:08 ?2.2w次閱讀
    如何通過<b class='flag-5'>STM32</b>的<b class='flag-5'>定時(shí)器</b><b class='flag-5'>輸出</b><b class='flag-5'>PWM</b>?

    嵌入式單片機(jī)基礎(chǔ)篇(九)之通用定時(shí)器(二)PWM輸出

    ,是利用微處理的數(shù)字輸出來對模擬電路進(jìn)行控制的一種非常有效的技術(shù)。簡單一點(diǎn),就是對脈沖寬度的控制,輸出一個(gè)方波。(2)STM32定時(shí)器
    發(fā)表于 11-22 17:51 ?68次下載
    嵌入式單片機(jī)基礎(chǔ)篇(九)之通用<b class='flag-5'>定時(shí)器</b>(二)<b class='flag-5'>PWM</b><b class='flag-5'>輸出</b>

    [STM32]通用定時(shí)器的使用

    STM32的通用定時(shí)器定時(shí)輸出PWM功能的使用本次還是使用發(fā)光二極管來驗(yàn)證定時(shí)器的使用目錄
    發(fā)表于 11-22 19:06 ?24次下載
    [<b class='flag-5'>STM32</b>]通用<b class='flag-5'>定時(shí)器</b>的使用

    STM32定時(shí)器-基本定時(shí)器

    目錄定時(shí)器分類基本定時(shí)器功能框圖講解基本定時(shí)器功能時(shí)鐘源計(jì)數(shù)時(shí)鐘計(jì)數(shù)自動(dòng)重裝載寄存
    發(fā)表于 11-23 18:21 ?31次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>定時(shí)器</b>-基本<b class='flag-5'>定時(shí)器</b>

    STM32-通用定時(shí)器-PWM輸出

    捕獲、輸出比較、PWM輸出、單脈沖模式輸出等。STM32定時(shí)器除了TIM6和TIM7(基本
    發(fā)表于 11-26 15:36 ?23次下載
    <b class='flag-5'>STM32</b>-通用<b class='flag-5'>定時(shí)器</b>-<b class='flag-5'>PWM</b><b class='flag-5'>輸出</b>

    STM32F103C8T6定時(shí)器TIM4通道1、2輸出PWM

    STM32F103C8T6定時(shí)器TIM4通道1、2輸出PWM這美妙的波形,真好,我他喵的終于把你弄出來了。STM32F103C8T6使用
    發(fā)表于 12-02 18:21 ?72次下載
    <b class='flag-5'>STM32F103C8</b>T6<b class='flag-5'>定時(shí)器</b>TIM4通道1、2<b class='flag-5'>輸出</b><b class='flag-5'>PWM</b>

    STM32定時(shí)器功能和用法詳解

    的SysTick,看門狗定時(shí)器以后再詳細(xì)研究。今天主要是研究剩下的8個(gè)定時(shí)器。 其中TIM1和TIM8是能夠產(chǎn)生3對PWM互補(bǔ)
    發(fā)表于 02-11 15:04 ?29次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>定時(shí)器</b>功能和用法<b class='flag-5'>詳解</b>

    STM32F407入門開發(fā): 配置定時(shí)器輸出PWM方波

    STM32F407的定時(shí)器的 TIM6 和 TIM7 是普通定時(shí)器,除此之外,其他的定時(shí)器都可以用來產(chǎn)生 PWM
    的頭像 發(fā)表于 05-28 13:43 ?1.5w次閱讀
    <b class='flag-5'>STM32</b>F407入門開發(fā): 配置<b class='flag-5'>定時(shí)器</b><b class='flag-5'>輸出</b><b class='flag-5'>PWM</b>方波