首先來說,你要使用PWM模式你得先選擇用哪個定時器來輸出PWM吧!除了TIM6、TIM7這兩個普通的定時器無法輸出PWM外,其余的定時器都可以輸出PWM,每個通用定時器可以輸出4路PWM,高級定時器TIM1、TIM8每個可輸出7路PWM。選好定時器及通道后,下一步就是要使能定時器的時鐘。先貼代碼,再對每條代碼做詳細分析。
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //選擇定時器模式:TIM脈沖寬度調制模式2
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //輸出極性:TIM輸出比較極性高(也就是選擇有效電平,這里是高電平為有效電平)
TIM_OC2Init(TIM3, &TIM_OCInitStructure); //根據T指定的參數初始化外設TIM3 OC2
TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); //使能TIM3在CCR2上的預裝載寄存器,即TIM3_CCR2的預裝載值在更新事件到來時才能被傳送至當前寄存器中。
TIM_Cmd(TIM3, ENABLE); //使能TIM3
這6句話就把PWM的通道配置好了,現在來解釋每一條代碼:
為什么選擇的是PWM2模式呢?為什么不選擇PWM1模式呢?兩者又有什么區別呢?
下面我們就一探究竟,PWM1和PWM2模式是由CCMRx的OCxM來決定的,因為我們選擇的是是通道2,所以設置的是OC2M,再看相關介紹OCxM[2:0]:
110:PWM模式1- 在向上計數時,一旦TIMx_CNT 在向下計數時,一旦TIMx_CNT>TIMx_CCRx時通道x為無效電平(OC1REF=0),否則為有效電平(OC1REF=1)。 111:PWM模式2- 在向上計數時,一旦TIMx_CNT 在向下計數時,一旦TIMx_CNT>TIMx_CCRx時通道x為有效電平,否則為無效電平。 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; 這句就是用來選有效電平,HIGH就代表1為有效電平。 TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); //使能TIM3在CCR2上的預裝載寄存器, 即TIM3_CCR2的預裝載值在更新事件到來時才能被傳送至當前寄存器中。 這句話是說,CCR2中的預裝載值何時被傳送到當前的CNT寄存器中,這里我們選擇的是當更新事件到來的時候才裝載, 追蹤寄存器的設置可知,原來設置的是CCMR1的OC2PE,其實還有一種方式是立即裝載看手冊: OC1PE:輸出比較1預裝載使能(Output compare 1 preload enable) 位3 0:禁止TIMx_CCR1寄存器的預裝載功能,可隨時寫入TIMx_CCR1寄存器,并且新寫入的數值立即起作用。 1:開啟TIMx_CCR1寄存器的預裝載功能,讀寫操作僅對預裝載寄存器操作, TIMx_CCR1的預裝載值在更新事件到來時被傳送至當前寄存器中。 TIM_OC1PreloadConfig(),TIM_ARRPreloadConfig();這兩個函數控制的是ccr1和arr的預裝在使能,使能和失能的區別就是: 使能的時候這兩個儲存期的讀寫需要等待有更新事件發生時才能被改變(比如計數溢出就是更新時間)。失能的時候可以直接進行讀寫而沒有延遲。 另外在運行當中想要改變pwm的頻率和占空比調用:TIM_SetAutoreload();TIM_SetCompare1()這兩個函數就可以了。 學習后發現stm32的定時器功能確實很強大,小總結一下方便以后使用的時候做參考。 Stm32定時器一共分為三種:tim1和tim8是高級定時器,6和7是基本定時器,2—5是通用定時器。從名字就可以看得出來主要功能上的差異。 今天我主要是用定時器做pwm輸出,所以總結也主要是針對pwm方面的。先大致說下通用和高級定時器的區別。通用的可以輸出四路pwm信號互不影響。高級定時器可以輸出三對互補pwm信號外加ch4通道,也就是一共七路。所以這樣算下來stm32一共可以生成4*5+7*2=30路pwm信號。接下來還有功能上的區別:通用定時器的pwm信號比較簡單,就是普通的調節占空比調節頻率(別的不常用到的沒去深究);高級定時器的還帶有互補輸出功能,同時互補信號可以插入死區,也可以使能剎車功能,從這些看來高級定時器的pwm天生就是用來控制電機的。
上一篇:STM32 通用定時器作為輸入捕獲 學習筆記
下一篇:STM32 通用定時器的定時功能 學習筆記
推薦閱讀
史海拾趣
自1997年成立以來,AnalogicTech便致力于技術創新,不斷推動電子行業的發展。公司總部位于硅谷,設計中心則分布在圣塔克拉拉和上海,匯聚了全球頂尖的研發人才。憑借深厚的技術底蘊和創新能力,AnalogicTech成功研發出一系列具有顛覆性的產品,為當今最具創造性的消費品提供了強大的技術支持。
在過去的四十年中,Hammond將業務重心擴展到了美國和國際市場。通過在全球各地設立辦事處和建立分銷網絡,Hammond成功地將其產品和服務推廣到了世界各地。這一戰略轉型不僅極大地提升了Hammond的品牌影響力,還為其帶來了更加廣闊的市場空間和增長潛力。
在電子行業中,標準化建設對于提升產品質量和企業競爭力具有重要意義。Aten International深知標準化建設的重要性,因此在產品研發和生產過程中始終堅持高標準、嚴要求。公司還積極參與國際標準化組織的活動,推動相關標準的制定和完善。正是憑借在標準化建設方面的卓越表現,Aten International贏得了業界的高度認可和廣泛贊譽。
以上五個故事雖然基于虛構,但它們都反映了Aten International在電子行業發展的真實情況。這些故事展示了公司在技術創新、市場拓展、標準化建設等方面的努力和成就,也體現了Aten International在電子行業中的領先地位和卓越貢獻。
在不斷發展壯大的過程中,Chip Quik公司始終注重品牌建設和持續創新。公司加大了對研發部門的投入,不斷推出新技術和新產品,以滿足市場的不斷變化。同時,公司還通過加強品牌宣傳和推廣,提高了品牌知名度和美譽度,為公司的長遠發展奠定了堅實的基礎。
這些故事雖然基于假設和一般性的行業趨勢,但它們可以反映出一家電子行業中類似公司可能經歷的發展路徑和挑戰。希望這些故事能夠為您了解Chip Quik公司或其他電子行業公司的發展提供一定的參考。
在不斷發展壯大的過程中,Chip Quik公司始終注重品牌建設和持續創新。公司加大了對研發部門的投入,不斷推出新技術和新產品,以滿足市場的不斷變化。同時,公司還通過加強品牌宣傳和推廣,提高了品牌知名度和美譽度,為公司的長遠發展奠定了堅實的基礎。
這些故事雖然基于假設和一般性的行業趨勢,但它們可以反映出一家電子行業中類似公司可能經歷的發展路徑和挑戰。希望這些故事能夠為您了解Chip Quik公司或其他電子行業公司的發展提供一定的參考。
隨著全球電子市場的不斷發展,AMOTECH開始將目光投向海外市場。2004年,公司在山東建立了第一家海外工廠——山東AMOTECH公司,專注于全球定位系統天線的生產。這一舉措標志著AMOTECH正式進軍中國市場,為后續在中國市場的深入發展打下了基礎。此后,公司不斷加大對中國市場的投入,2006年在青島建立辦公室,2008年更是在青島建立了中國第二工廠,進一步鞏固和擴大了在中國市場的份額。
名 稱 常用封 裝外形 光譜(nm) 最大光電流 (10Lx)(μA) 特 點 缺 點 可應用性 光敏二極管 ?3,?5 850 0.05 有一定線性 光電流小,暗電流大 需要多級放大,應用電路復雜 光敏三極 ...… 查看全部問答∨ |
|
目錄: 第一章 技術數學復習 第二章 直流電路分析 第三章 交流電路分析 第四章 R、L、C元件的選擇 第五章 半導體器件的選擇 第六章 音頻放大器 第七章 調諧放大器 第八章 反饋 第九章 振蕩器 第十章 電源 第十一章 電池的使用及特種元 ...… 查看全部問答∨ |
|
我用的FFT-2410-V6.1的開發板,主板是三星的2410。開發板系統是Microsoft windows CE.NET版本是4.2。開發板有4個USBhost,插入鍵盤和鼠標都支持,但是插入我的U盤就不行了,出現“未能識別的USB設備,輸入此USB設備的驅動程序名稱-------”,有什么 ...… 查看全部問答∨ |
release版與debug版的區別在哪?把debug版本下的display驅動放到release下編譯照樣出樣下列錯誤。。。 GP1 Irq PwrButtonIntrThread :go to sleep! SA2Video::PowerHandler++++++++++ DispDrvrPowerHandler----------bOff = 1 DispDrvrPowerHa ...… 查看全部問答∨ |
最近在porting cs8900a driver, 從wince5.0 移到wince6.0中, 驅動編譯成功,系統也能夠檢測到網卡,網絡連接標示也有,可是與 pc 機就是ping 不通,不能連接到internet.硬件都沒問題!希望那位大俠能夠出手幫忙!!!… 查看全部問答∨ |
目前全國的計算機硬件教育還處于起步階段,由于實操環境和實驗室的要求,大部分的培訓機構和職業學校的硬件教育滯后于軟件教育,導致學生技能水平低,不能滿足就業的需求,同時對學生從事軟件開發等高級職業造成了短腿的現象。 近 ...… 查看全部問答∨ |
這幾天事情比較多,所以就一直沒有更新,呵呵,今天早上沒課,把之前寫好代碼整理一下,順便說下思路,發上來,供大家參考參考。 首先,本矩陣鍵盤硬件連接如下: 思路: 我的思路如下, ...… 查看全部問答∨ |