pwm.c源文件代碼如下:
//TIM14 PWM部分初始化
//PWM輸出初始化
//arr:自動重裝值 psc:時鐘預(yù)分頻數(shù)
void TIM14_PWM_Init(u32 arr,u32 psc)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14,ENABLE); //TIM14時鐘使能
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE); //使能PORTF時鐘
GPIO_PinAFConfig(GPIOF,GPIO_PinSource9,GPIO_AF_TIM14); //GF9復(fù)用為 TIM14
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //GPIOF9
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //復(fù)用功能
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; //速度 50MHz
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //推挽復(fù)用輸出
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //上拉
GPIO_Init(GPIOF,&GPIO_InitStructure); //初始化PF9
TIM_TimeBaseStructure.TIM_Prescaler=psc; //定時器分頻
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上計(jì)數(shù)模式
TIM_TimeBaseStructure.TIM_Period=arr; //自動重裝載值
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInit(TIM14,&TIM_TimeBaseStructure);//初始化定時器14
//初始化TIM14 Channel1 PWM模式
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //PWM調(diào)制模式1
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //輸出極性低
TIM_OC1Init(TIM14, &TIM_OCInitStructure); //初始化外設(shè)TIM1 4OC1
TIM_OC1PreloadConfig(TIM14, TIM_OCPreload_Enable); //使能預(yù)裝載寄存器
TIM_ARRPreloadConfig(TIM14,ENABLE);//ARPE 使能
TIM_Cmd(TIM14, ENABLE); //使能TIM14
}
此部分代碼包含了上面介紹的PWM輸出設(shè)置的前5 個步驟。這里我們關(guān)于TIM14 的設(shè)置就不再說了。
接下來,我們看看主程序里面的main函數(shù)如下:
int main(void)
{
u16 led0pwmval=0;
u8 dir=1;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級分組2
delay_init(168); //初始化延時函數(shù)
uart_init(115200);//初始化串口波特率為115200
TIM14_PWM_Init(500-1,84-1); //定時器時鐘為84M,分頻系數(shù)為84,所以計(jì)數(shù)頻率
//為84M/84=1Mhz,重裝載值500,所 以PWM頻率為 1M/500=2Khz.
while(1)
{
delay_ms(10);
if(dir)led0pwmval++;//dir==1 led0pwmval遞增
else led0pwmval--; //dir==0 led0pwmval遞減
if(led0pwmval>300)dir=0;//led0pwmval到達(dá) 300后,方向?yàn)檫f減
if(led0pwmval==0)dir=1; //led0pwmval遞減到 0后,方向改為遞增
TIM_SetCompare1(TIM14,led0pwmval); //修改比較值,修改占空比
}
}
這里,我們從死循環(huán)函數(shù)可以看出,我們將led0pwmval這個值設(shè)置為PWM比較值,也就是通過led0pwmval 來控制 PWM 的占空比,然后控制 led0pwmval 的值從 0 變到 300,然后又從 300變到0,如此循環(huán),因此DS0 的亮度也會跟著信號的占空比變化從暗變到亮,然后又從亮變到暗。至于這里的值,我們?yōu)槭裁慈?nbsp;300,是因?yàn)镻WM的輸出占空比達(dá)到這個值的時候,我們的 LED 亮度變化就不大了(雖然最大值可以設(shè)置到 499),因此設(shè)計(jì)過大的值在這里是沒必要的。至此,我們的軟件設(shè)計(jì)就完成了。
上一篇:STM32f4輸入捕獲實(shí)驗(yàn)代碼
下一篇:STM32f4定時器中斷實(shí)驗(yàn)代碼
推薦閱讀
史海拾趣
在環(huán)保意識日益增強(qiáng)的今天,Alpha Industries積極響應(yīng)綠色生產(chǎn)的號召。公司利用電子技術(shù)優(yōu)化生產(chǎn)流程,減少能源消耗和廢棄物排放。此外,Alpha Industries還推出了采用環(huán)保材料制成的軍事服裝系列,以實(shí)際行動踐行綠色環(huán)保理念。這些舉措不僅有助于提升公司的社會形象,也為公司的可持續(xù)發(fā)展奠定了堅(jiān)實(shí)基礎(chǔ)。
這些故事展示了Alpha Industries如何在電子技術(shù)的推動下,不斷創(chuàng)新并適應(yīng)市場變化,進(jìn)而在相關(guān)領(lǐng)域取得顯著發(fā)展。盡管這些故事并未直接涉及電子行業(yè)的核心業(yè)務(wù),但它們卻充分體現(xiàn)了Alpha Industries在技術(shù)創(chuàng)新和市場拓展方面的積極努力和取得的成果。
1999年,Chemtronics迎來了一個重要的轉(zhuǎn)折點(diǎn),成為Illinois Tool Works Inc的全資子公司。這一變化為Chemtronics帶來了更多的資源和支持,使其能夠進(jìn)一步擴(kuò)大生產(chǎn)規(guī)模、提升研發(fā)能力,并在全球范圍內(nèi)拓展業(yè)務(wù)。
Heyco非常重視與合作伙伴的關(guān)系建設(shè)。2021年,Heyco將年度全球最佳分銷商稱號授予了電子元器件分銷商貿(mào)澤電子,以表彰其在過去一年中不懈的努力和出色的銷售業(yè)績。這一獎項(xiàng)的頒發(fā)不僅體現(xiàn)了Heyco對貿(mào)澤電子的高度認(rèn)可,也展示了雙方之間深入、愉快的合作關(guān)系。通過與貿(mào)澤電子等優(yōu)秀分銷商的緊密合作,Heyco能夠更好地服務(wù)全球客戶,滿足其多樣化的需求。
American Electric公司成立于XXXX年,起初只是一個小型電力供應(yīng)商,為當(dāng)?shù)靥峁╇娏Ψ?wù)。然而,憑借著對電力行業(yè)的深刻理解和對市場需求的敏銳洞察,公司創(chuàng)始人決定擴(kuò)大業(yè)務(wù)范圍,逐步涉足發(fā)電、輸電和配電等多個領(lǐng)域。通過不懈的努力和創(chuàng)新,American Electric公司逐漸在電力行業(yè)中嶄露頭角,成為一家備受矚目的企業(yè)。
Big-Sun Electronics Co Ltd公司在追求經(jīng)濟(jì)效益的同時,也積極履行社會責(zé)任。公司注重環(huán)保和節(jié)能減排,采用先進(jìn)的生產(chǎn)工藝和設(shè)備,減少生產(chǎn)過程中的環(huán)境污染。此外,Big-Sun還積極參與社會公益事業(yè),為當(dāng)?shù)厣鐓^(qū)的發(fā)展和教育事業(yè)做出了積極貢獻(xiàn)。
這些故事旨在展示Big-Sun Electronics Co Ltd公司可能的發(fā)展歷程,但請注意,這些并非基于實(shí)際發(fā)生的事件。如果需要了解Big-Sun Electronics Co Ltd公司的真實(shí)歷史和發(fā)展故事,建議查閱相關(guān)官方資料或新聞報(bào)道。
品質(zhì)是Big-Sun Electronics Co Ltd公司一直以來的核心競爭力。公司建立了嚴(yán)格的質(zhì)量管理體系,從原材料采購到生產(chǎn)流程控制,再到產(chǎn)品出廠檢驗(yàn),每一個環(huán)節(jié)都嚴(yán)格把關(guān)。同時,Big-Sun還注重品牌建設(shè),通過廣告宣傳和客戶服務(wù),不斷提升品牌知名度和美譽(yù)度。
淺談現(xiàn)代汽車電子信息技術(shù)的發(fā)展 一、汽車電子操控和安全 電子信息技術(shù)已經(jīng)成為新一代汽車發(fā)展方向的主導(dǎo)因素,汽車的動力性能、操控性能、安全性能和舒適性能等各個方面的改進(jìn)和提高,都將依賴于機(jī)械系統(tǒng)及結(jié)構(gòu)和電子產(chǎn)品、信 ...… 查看全部問答∨ |
模擬電子線路 第二章 半導(dǎo)體三極管及放大電路基礎(chǔ) 模擬電子線路 第二章 半導(dǎo)體三極管及放大電路基礎(chǔ) http://www.b2bic.com/Portals/a8176bfa-b639-40b8-9e48-b16e7be6eff5/Documents/Analog2.htm 第一節(jié) 學(xué)習(xí)要求 第二節(jié) 半導(dǎo)體三極管 第三節(jié) ...… 查看全部問答∨ |
我的可用物理內(nèi)存只剩余1M,文件有20M 如果我一次映射進(jìn)去的話,會映射失敗,因?yàn)閮?nèi)存不足。 如果一次只映射一小部分,釋放在重新映射的話,會導(dǎo)致頻繁調(diào)用mapviewoffile, 因?yàn)槲颐看涡枰L問的數(shù)據(jù)很小,只有幾k,當(dāng)然有少數(shù)情況需要映射的數(shù)據(jù) ...… 查看全部問答∨ |
CE下如何實(shí)現(xiàn)錯誤報(bào)告功能? 如題,我最近寫了個程序(Windows Mobile上的)在模擬器上測試無任何問題,可是一拿到真機(jī)上就偶爾會出錯,出錯的原因是訪問了未對齊的數(shù)據(jù),我代碼檢查了好多遍也沒發(fā)現(xiàn)哪錯了。 我使用如下方法能捕獲到這個異常 __try { ... } ...… 查看全部問答∨ |
請教如何控制不去調(diào)用這意料之外的函數(shù)??? 程序片段如下 定時器中: timerCount++; if (timerCount >= 50) { /*dip1只有 0、1兩種情況*/ if (dip1 == 0)&nb ...… 查看全部問答∨ |
RT-Thread的一個開源產(chǎn)品:串口轉(zhuǎn)以太網(wǎng) 響應(yīng)soso的號召,把RT-Thread這個穩(wěn)定的網(wǎng)絡(luò)產(chǎn)品也傳了上來,詳細(xì)信息如下:這個項(xiàng)目由RT-Thread的LwIP組件維護(hù)人 mbbill 捐獻(xiàn),穩(wěn)定度也達(dá)到了RT- Thread/LwIP的最高水平,硬件基于AT91SAM7x256(mbbill亦是AT91SAM7x256分支維護(hù)人)。 ...… 查看全部問答∨ |
看到手冊RM008(Rev10)的140頁下面的圖中有個VDD_FT,這個電壓是怎么加上的?我在引腳中找不到這個引腳,難道5V是內(nèi)部升上去的? 謝謝!… 查看全部問答∨ |
全國大學(xué)生電子設(shè)計(jì)大賽之心得體會 本帖最后由 paulhyde 于 2014-9-15 03:53 編輯 隨著今天下午小車測試的結(jié)束,全國大學(xué)生電子設(shè)計(jì)大賽也就宣告結(jié)束,準(zhǔn)備了兩個月的集訓(xùn)也就因此而告一個段落,我們的處女賽最終以失敗而結(jié)束。這是我大學(xué)生活中的第一次參加這樣的比 ...… 查看全部問答∨ |
【德州儀器視頻】WEBENCH® 時鐘架構(gòu):一個成功案例 本帖最后由 dontium 于 2015-1-23 11:12 編輯 v.youku./v_show/id_XNzEwOTY5ODky.htmlAlan 和 Jeramie 向您展示如何使用 WEBENCH 時鐘架構(gòu)工具在幾分鐘內(nèi)就構(gòu)建完成一個完整且優(yōu)化的時鐘樹。WEBENCH 時鐘架構(gòu)展示了多種解決方案選項(xiàng),同時還顯示了 ...… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 基于GPS自動授時的無線智能控制器的設(shè)計(jì)
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計(jì)
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機(jī)載穩(wěn)定云臺控制系統(tǒng)的設(shè)計(jì)
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時處理器M7000
- 基于HW2181B的航模無線遙控通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 應(yīng)對機(jī)器人“四高”,極海推出全球首款雙核Cortex-M52 MCU G32R501
- 非道路移動機(jī)械透射式煙度計(jì)研究與實(shí)現(xiàn)
- 基于STM32F103的角磨機(jī)開關(guān)磁阻電機(jī)控制器的設(shè)計(jì)
- 英特爾發(fā)布全新GPU,AI和工作站迎來新選擇
- 重新思考數(shù)據(jù)中心架構(gòu),推進(jìn)AI的規(guī)模化落地
- Samtec科普 | 一文入門射頻連接器
- 垂直農(nóng)業(yè)的挑戰(zhàn) | Samtec新型農(nóng)業(yè)漫談系列一
- 比克電池亮相CIBF 2025,全品類布局構(gòu)建發(fā)展“芯”引擎
- 欣旺達(dá)閃耀CIBF 2025:以閃充/固態(tài)電池/逸風(fēng)電池等五大技術(shù)矩陣,領(lǐng)航全球能源革命
- 全新智己L6要做「下一代產(chǎn)品」
- 2025《國產(chǎn)車規(guī)芯片可靠性分級目錄》全新發(fā)布,電子版對整車和零部件企業(yè)免費(fèi)開放
- 寧德時代推重卡換電標(biāo)準(zhǔn),計(jì)劃三年內(nèi)電動化滲透率達(dá)50%
- 特斯拉FSD系統(tǒng)全球測試成功,無人駕駛技術(shù)再突破
- 下載有好禮!羅姆帶您學(xué)習(xí)電源設(shè)計(jì)應(yīng)用小技巧(功率器件篇)
- 英飛凌出手游啦 | 汽車水泵挑戰(zhàn)賽等你來!
- 逛安富利新能源技術(shù)創(chuàng)新云會展 贏好禮!
- phyBOARD-i.MX 8M Plus 開發(fā)板來襲 免費(fèi)申請進(jìn)行時!
- 你眼中的TI DSP有多么的與眾不同?
- 2023 Digikey KOL 視頻系列第一期
- 直播已結(jié)束【使用 TI 低成本 MSPM0 MCU 快速開發(fā) – 生態(tài)詳解系列之二】(9:45開始入場)
- 測評有禮!動手實(shí)戰(zhàn):全網(wǎng)征集TI毫米波雷達(dá)測評者
- TE可穿戴解決方案助你打造暖心大白,答題贏TTI好禮
- LM3S 系列單片機(jī)如何做到掉電檢測
- 數(shù)字模擬兼容的超寬帶
- nand flash啟動問題
- 【平頭哥Sipeed LicheeRV 86 Panel測評】4-編譯環(huán)境搭建
- TI DSP--內(nèi)存空間的分配和指定
- AGC中頻放大器設(shè)計(jì)
- 放出PCB!硬幣大小的迷你MSP430G2553最小系統(tǒng)有人有興趣嗎?28個IO口比LaunchPad多8個
- DIY多功能STM32迷你遙控器(附工程文件,可直接做板使用)
- 請教LM3S9B92以太網(wǎng)控制的問題
- 這個芯片內(nèi)部結(jié)構(gòu)是啥意思,路過的大神,進(jìn)來指點(diǎn)一二,拜托!!!