在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

詳解stm32的定時器8輸出PWM

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

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

1.調用:

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

2.函數源碼:

//TIM8 PWM部分初始化 
//PWM輸出初始化
//arr:自動重裝值
//psc:時鐘預分頻數
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); //使能定時器3時鐘
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  //使能GPIO外設和AFIO復用功能模塊時鐘
  
  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;  //復用推挽輸出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化GPIO
  
  //初始化TIM8
  TIM_TimeBaseStructure.TIM_Period = arr; //設置在下一個更新事件裝入活動的自動重裝載寄存器周期的值
  TIM_TimeBaseStructure.TIM_Prescaler =psc; //設置用來作為TIMx時鐘頻率除數的預分頻值
  TIM_TimeBaseStructure.TIM_ClockDivision = 0; //設置時鐘分割:TDTS = Tck_tim
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上計數模式
  TIM_TimeBaseInit(TIM8, &TIM_TimeBaseStructure); //根據TIM_TimeBaseInitStruct中指定的參數初始化TIMx的時間基數單位


  //初始化TIM8 Channel2 PWM模式  
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //選擇定時器模式:TIM脈沖寬度調制模式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);  //根據T指定的參數初始化外設TIM8 OC2


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


  TIM_SetCompare1(TIM8,474);


  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //選擇定時器模式:TIM脈沖寬度調制模式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);  //根據T指定的參數初始化外設TIM8 OC2


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


  TIM_SetCompare2(TIM8,700);


  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //選擇定時器模式:TIM脈沖寬度調制模式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);  //根據T指定的參數初始化外設TIM8 OC2


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


  TIM_SetCompare3(TIM8,900);


  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //選擇定時器模式:TIM脈沖寬度調制模式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);  //根據T指定的參數初始化外設TIM8 OC2


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


  TIM_SetCompare4(TIM8,1200);


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


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

    關注

    114

    文章

    5195

    瀏覽量

    214351
  • STM32
    +關注

    關注

    2270

    文章

    10915

    瀏覽量

    356742
  • 定時器
    +關注

    關注

    23

    文章

    3254

    瀏覽量

    115069
  • 函數
    +關注

    關注

    3

    文章

    4341

    瀏覽量

    62799

原文標題:stm32的定時器8輸出PWM

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

收藏 人收藏

    評論

    相關推薦

    STM32定時器(一)PWM輸出

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

    介紹通過STM32定時器輸出PWM

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

    STM32定時器詳解

    結合起來使用的話可以實現非常豐富的功能,可以測量輸入信號的脈沖寬度,可以生產輸出波形。定時器生產 PWM 控制電機狀態是工業控制普遍方法,這方面知識非常有必要深入了解。STM32F4
    發表于 08-18 06:17

    STM32定時器配置、PWM輸出比較詳解、電機PWM輸出配置 精選資料分享

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

    stm32通用定時器原理及編程技巧

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

    詳解STM32定時器的時鐘源

    STM32中有多達8定時器,其中TIM1和TIM8是能夠產生三對PWM互補輸出的高級
    的頭像 發表于 09-03 17:14 ?2.7w次閱讀

    STM32單片機如何通過定時器的控制輸出PWM

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

    如何通過STM32定時器輸出PWM

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

    嵌入式單片機基礎篇(九)之通用定時器(二)PWM輸出

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

    [STM32]通用定時器的使用

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

    STM32定時器-基本定時器

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

    STM32-通用定時器-PWM輸出

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

    STM32F103C8T6定時器TIM4通道1、2輸出PWM

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

    STM32定時器功能和用法詳解

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

    STM32F407入門開發: 配置定時器輸出PWM方波

    STM32F407的定時器的 TIM6 和 TIM7 是普通定時器,除此之外,其他的定時器都可以用來產生 PWM
    的頭像 發表于 05-28 13:43 ?1.5w次閱讀
    <b class='flag-5'>STM32</b>F407入門開發: 配置<b class='flag-5'>定時器</b><b class='flag-5'>輸出</b><b class='flag-5'>PWM</b>方波
    主站蜘蛛池模板: 色天天色综合| 天堂8资源8在线| 美女黄18| 女人张开腿等男人桶免费视频| 男女免费网站| 狠狠要| 国产乱码精品一区二区三区四川人| 国产精品亚洲色图| aaa特级毛片| 天天干视频在线观看| 久久天天综合| 中文4480yy私人免费影院| 午夜视频h| 男人的午夜| 亚洲大成色www永久网| 四虎永久网址在线观看| 日本.www| 黄 色 片成 人免费观看| www四虎| 男女午夜免费视频| 人人揉揉香蕉大免费不卡| 涩狠狠狠狠色| 天天爽夜夜爽天天做夜夜做| 亚洲精品网站日本xxxxxxx| 黄色免费小视频| 第四色激情网| 天天操夜夜操免费视频| 国产欧美一区二区日本加勒比| 天堂在线www在线资源| 国产资源视频在线观看| 高清欧美性xxxx成熟| 亚洲乱码尤物193yw在线播放| 中文字幕精品一区二区三区视频| 757福利影院合集3000| 免费的黄视频| 四虎影院在线免费播放| 看看一级毛片| 天天看片夜夜爽| 国产精品臀控福利在线观看| 在线看av的网址| 男人边吃奶边做视频免费网站 |