www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]輸出比較:打開一個TIMx計(jì)數(shù)器,再打開TIMx的一路或幾路輸出比較器(共4路),都配置好以后,計(jì)數(shù)器開始計(jì)數(shù),當(dāng)計(jì)數(shù)器里的值和比較寄存器里的值相等時,產(chǎn)生輸出比較中斷,在中斷中將計(jì)數(shù)器中的值讀出,與翻轉(zhuǎn)周期相

輸出比較:打開一個TIMx計(jì)數(shù)器,再打開TIMx的一路或幾路輸出比較器(共4路),都配置好以后,計(jì)數(shù)器開始計(jì)數(shù),當(dāng)計(jì)數(shù)器里的值和比較寄存器里的值相等時,產(chǎn)生輸出比較中斷,在中斷中將計(jì)數(shù)器中的值讀出,與翻轉(zhuǎn)周期相加再寫道比較寄存器中,使得和下一個事件有相同的翻轉(zhuǎn)周期。

大致意思為打開計(jì)數(shù)器后,計(jì)數(shù)值不斷增加,到增加到比較寄存器的值時,電平翻轉(zhuǎn),也會產(chǎn)生比較中斷,在比較中斷中在把計(jì)數(shù)器的值讀出與周期相加,一并寫入比較寄存器,使得有相同的翻轉(zhuǎn)周期。

例如TIM時鐘頻率設(shè)置為12MHZ,輸出比較寄存器中的自裝載值為600(高電平或低電平計(jì)數(shù)值),則輸出的PWM頻率為

frequency = 12MHZ/(600*2)=10KHZ。

但是初始值可以自己設(shè)置,換句話說,相位可以自己定。

1。TIM3時鐘以及對應(yīng)的IO時鐘使能。

TIM3 是掛載在 APB1 之下,所以我們通過 APB1 總線下的使能使能函數(shù)來使能 TIM3。調(diào)用的函數(shù)是:

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //開啟定時器3 掛載在APB1時鐘下

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //開啟定時器3的通道1 PB1 開啟PB時鐘

2。GPIO的結(jié)構(gòu)體初始化 因?yàn)槭嵌〞r器輸出所以為復(fù)用推挽輸出 AF-PP

GPIO_InitTypeDef GPIO_InitStructure;

//Step1. PB.1口設(shè)置為TIM3的OC4輸出口

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOB, &GPIO_InitStructure);

3。設(shè)置定時器模式 輸出比較模式

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

TIM_OCInitTypeDef TIM_OCInitStructure;

TIM_TimeBaseStructure.TIM_Prescaler = 71; //分頻系數(shù)為71 得到真正的時基單元為72M/(71+1)=1M

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上計(jì)數(shù)

TIM_TimeBaseStructure.TIM_Period = 0xffff;//自裝載值為65535 特殊值

TIM_TimeBaseStructure.TIM_ClockDivision = 0;

TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);

TIM_OCStructInit(&TIM_OCInitStructure);

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle; //觸發(fā)事件 電平翻轉(zhuǎn)

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //開啟輸出

TIM_OCInitStructure.TIM_Pulse = t; //初始值10000

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //輸出極性為高

TIM_OC4Init(TIM3,&TIM_OCInitStructure); //通道4

4。因?yàn)橐_啟定時器中斷 OC 設(shè)置中斷優(yōu)先級

NVIC_InitTypeDef NVIC_InitStructure;

//Step3.使能TIM3的輸出比較匹配中斷

NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

5。清楚中斷標(biāo)志位 開中斷 使能定時器3

TIM_ClearFlag(TIM3, TIM_FLAG_CC4);//清中斷標(biāo)志位

TIM_ITConfig(TIM3, TIM_IT_CC4, ENABLE);//TIM3中斷源設(shè)置,開啟相應(yīng)通道的捕捉比較中斷

TIM_Cmd(TIM3, ENABLE);//首先先失能定時器3

6。中斷服務(wù)函數(shù) :void TIM3_IRQHandler(void)

7。先檢測是否是設(shè)置的輸出比較中斷響應(yīng)

if(TIM_GetITStatus(TIM3,TIM_IT_CC4) == SET)

8。清楚中斷標(biāo)志位

TIM_ClearITPendingBit(TIM3, TIM_IT_CC4 );

9.提取Timer_CNT當(dāng)前計(jì)數(shù)值

capture = TIM_GetCapture4(TIM3);//提取Timer3的當(dāng)前計(jì)數(shù)值

10。重賦值CCR。下次定時器中斷時間。

TIM_SetCompare4(TIM3, capture + t);//需要累加當(dāng)前計(jì)數(shù)值

頻率輸出計(jì)算方式:PCLK2/(TIM_Prescaler+1)/(CCR)/2=f

假設(shè)CCR為1000 72M/(71+1)/1000/2=500HZ

TIM_SetCompare4(TIM3, capture + t); 改變t就是改變CCR。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在嵌入式開發(fā)中,STM32的時鐘系統(tǒng)因其靈活性和復(fù)雜性成為開發(fā)者關(guān)注的焦點(diǎn)。然而,看似簡單的時鐘配置背后,隱藏著諸多易被忽視的陷阱,輕則導(dǎo)致系統(tǒng)不穩(wěn)定,重則引發(fā)硬件損壞。本文從時鐘源選擇、PLL配置、總線時鐘分配等關(guān)鍵環(huán)...

關(guān)鍵字: STM32 時鐘系統(tǒng)

在嵌入式系統(tǒng)開發(fā)中,STM32系列微控制器的內(nèi)部溫度傳感器因其低成本、高集成度特性,廣泛應(yīng)用于設(shè)備自檢、環(huán)境監(jiān)測等場景。然而,受芯片工藝差異和電源噪聲影響,其原始數(shù)據(jù)存在±1.5℃的固有誤差。本文從硬件配置、校準(zhǔn)算法、軟...

關(guān)鍵字: STM32 溫度傳感器

在能源效率與智能化需求雙重驅(qū)動下,AC-DC轉(zhuǎn)換器的數(shù)字控制技術(shù)正經(jīng)歷從傳統(tǒng)模擬方案向全數(shù)字架構(gòu)的深刻變革?;赟TM32微控制器的PFM(脈沖頻率調(diào)制)+PWM(脈沖寬度調(diào)制)混合調(diào)制策略,結(jié)合動態(tài)電壓調(diào)整(Dynam...

關(guān)鍵字: AC-DC STM32

當(dāng)前智能家居產(chǎn)品需求不斷增長 ,在這一背景下 ,對現(xiàn)有澆花裝置缺陷進(jìn)行了改進(jìn) ,設(shè)計(jì)出基于STM32單片機(jī)的全 自動家用澆花機(jī)器人。該設(shè)計(jì)主要由機(jī)械結(jié)構(gòu)和控制系統(tǒng)構(gòu)成 ,機(jī)械結(jié)構(gòu)通過麥克納姆輪底盤與噴灑裝置的結(jié)合實(shí)現(xiàn)機(jī)器...

關(guān)鍵字: STM32 麥克納姆輪 安全可靠 通過性強(qiáng)

用c++編程似乎是讓你的Arduino項(xiàng)目起步的障礙嗎?您想要一種更直觀的微控制器編程方式嗎?那你需要了解一下Visuino!這個圖形化編程平臺將復(fù)雜電子項(xiàng)目的創(chuàng)建變成了拖動和連接塊的簡單任務(wù)。在本文中,我們將帶您完成使...

關(guān)鍵字: Visuino Arduino ESP32 STM32

基于STM32與LoRa技術(shù)的無線傳感網(wǎng)絡(luò)憑借其低功耗、廣覆蓋、抗干擾等特性,成為環(huán)境監(jiān)測、工業(yè)自動化等場景的核心解決方案。然而,如何在復(fù)雜電磁環(huán)境中實(shí)現(xiàn)高效休眠調(diào)度與動態(tài)信道優(yōu)化,成為提升網(wǎng)絡(luò)能效與可靠性的關(guān)鍵挑戰(zhàn)。本...

關(guān)鍵字: STM32 LoRa

在實(shí)時控制系統(tǒng)、高速通信協(xié)議處理及高精度數(shù)據(jù)采集等對時間敏感的應(yīng)用場景中,中斷響應(yīng)延遲的優(yōu)化直接決定了系統(tǒng)的可靠性與性能上限。STM32系列微控制器憑借其靈活的嵌套向量中斷控制器(NVIC)、多通道直接內(nèi)存訪問(DMA)...

關(guān)鍵字: STM32 DMA

數(shù)字電源技術(shù)向高功率密度、高效率與高動態(tài)響應(yīng)方向加速演進(jìn),STM32微控制器憑借其基于DSP庫的算法加速能力與對LLC諧振變換器的精準(zhǔn)控制架構(gòu),成為優(yōu)化電源動態(tài)性能的核心平臺。相較于傳統(tǒng)模擬控制或通用型數(shù)字控制器,STM...

關(guān)鍵字: STM32 數(shù)字電源

STM32微控制器憑借其針對電機(jī)控制場景的深度優(yōu)化,成為高精度、高可靠性驅(qū)動系統(tǒng)的核心選擇。相較于通用型MCU,STM32在電機(jī)控制領(lǐng)域的核心優(yōu)勢集中體現(xiàn)在FOC(磁場定向控制)算法的硬件加速引擎與PWM死區(qū)時間的動態(tài)補(bǔ)...

關(guān)鍵字: STM32 電機(jī)控制

無線充電技術(shù)加速滲透消費(fèi)電子與汽車電子領(lǐng)域,基于Qi協(xié)議的無線充電發(fā)射端開發(fā)成為智能設(shè)備能量補(bǔ)給的核心課題。傳統(tǒng)模擬控制方案存在響應(yīng)滯后、參數(shù)調(diào)整困難等問題,而基于STM32的數(shù)字PID控制結(jié)合FOD(Foreign O...

關(guān)鍵字: STM32 無線充電
關(guān)閉