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

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]一。如何測(cè)量脈沖寬度或脈沖頻率輸入捕獲的原理用51單片機(jī)檢測(cè)的方法:(這里我們不用51的輸入中斷功能,只利用定時(shí)器來(lái)檢測(cè))前提是定時(shí)器沒(méi)有溢出。用STM32檢測(cè)脈沖寬度:這里的CC1E,CC1P指的是捕獲通道1,捕獲通道

一。如何測(cè)量脈沖寬度或脈沖頻率

輸入捕獲的原理











用51單片機(jī)檢測(cè)的方法:(這里我們不用51的輸入中斷功能,只利用定時(shí)器來(lái)檢測(cè))

前提是定時(shí)器沒(méi)有溢出。


用STM32檢測(cè)脈沖寬度:

這里的CC1E,CC1P指的是捕獲通道1,捕獲通道2是CC2E,CC2P。。。。

CC1E控制使能,CC1P控制極性



捕獲/比較使能寄存器(TIMx_CCER)




CC1P設(shè)置為0為上升沿有效,設(shè)置為1時(shí)為下降沿有效。

a. 開(kāi)啟定時(shí)器

b. 使能相應(yīng)的輸入捕獲

c. 設(shè)置捕獲極性

捕獲以后會(huì)進(jìn)入相應(yīng)的中斷,同時(shí)把計(jì)數(shù)器中的值保存下來(lái)。


二。 STM32的輸入捕獲模式

輸入捕獲模式可以用來(lái)測(cè)量脈沖寬度或者測(cè)量頻率。 STM32 的定時(shí)器,除了 TIM6 和 TIM7,其他定時(shí)器都有輸入捕獲功能。

在輸入捕獲模式下,當(dāng)檢測(cè)到ICx信號(hào)上相應(yīng)的邊沿后,計(jì)數(shù)器的當(dāng)前值被鎖存到捕獲/比較寄器(TIMx_CCRx)中。當(dāng)捕獲事件發(fā)生時(shí),相應(yīng)的CCxIF標(biāo)志(TIMx_SR寄存器)被置’1’,如果使能了中斷或者DMA操作,則將產(chǎn)生中斷或者DMA操作。

三。STM32輸入捕獲模式相關(guān)的寄存器

本實(shí)驗(yàn)利用TIM5的通道1(PA0)來(lái)做輸入捕獲。捕獲 PA0 上高電平的脈寬(用 WK_UP 按鍵輸入高電平),通過(guò)串口打印高電平脈寬時(shí)間。

1. 捕獲/比較模式寄存器 1:TIMx_CCMR1


當(dāng)在輸入捕獲模式下使用的時(shí)候,對(duì)應(yīng)圖 15.1.1 的第二行描述,從圖中可以看出,TIMx_CCMR1 明顯是針對(duì) 2 個(gè)通道的配置,低八位[7: 0]用于捕獲/比較通道 1 的控制,而高八位[15:8]則用于捕獲/比較通道 2 的控制。




2. 捕獲/比較使能寄存器:TIMx_CCER

本次實(shí)驗(yàn)我們要用到這個(gè)寄存器的最低 2 位,CC1E 和 CC1P 位。



3.控制寄存器:TIMx_CR1

我們只用到了它的最低位,也就是用來(lái)使能定時(shí)器的。



4.DMA/中斷使能寄存器:TIMx_DIER





本實(shí)驗(yàn)我們需要用到中斷來(lái)處理捕獲數(shù)據(jù),所以必須開(kāi)啟通道 1 的捕獲比較中斷,即 CC1IE 設(shè)置為 1。

5.狀態(tài)寄存器(TIMx_SR)



CC1IF:捕獲/比較1 中斷標(biāo)記(Capture/Compare 1 interrupt flag)

如果通道CC1配置為輸出模式:

當(dāng)計(jì)數(shù)器值與比較值匹配時(shí)該位由硬件置’1’,但在中心對(duì)稱(chēng)模式下除外(參考TIMx_CR1寄存器的CMS位)。它由軟件清’0’。

四。輸入捕獲的配置步驟:





1)開(kāi)啟 TIM5 時(shí)鐘和 GPIOA 時(shí)鐘,配置 P A0 為下拉輸入。

2)初始化 TIM5,設(shè)置 TIM5 的 ARR 和 PSC。

例:

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

TIM_TimeBaseStructure.TIM_Period = arr; //設(shè)定計(jì)數(shù)器自動(dòng)重裝值

TIM_TimeBaseStructure.TIM_Prescaler =psc; //設(shè)置預(yù)分頻值

TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; // TDTS = Tck_tim

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

TIM_TimeBaseInit(TIM5, &TIM_TimeBaseStructure); //根據(jù)指定的參數(shù)初始化 Tim5

3)設(shè)置 TIM5 的輸入比較參數(shù),開(kāi)啟輸入捕獲。

void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct);

例:

TIM_ICInitTypeDef TIM5_ICInitStructure;

TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1; //選擇輸入端 IC1 映射到 TI1 上

TIM5_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //上升沿捕獲

TIM5_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //映射到 TI1 上

TIM5_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; //配置輸入分頻,不分頻

TIM5_ICInitStructure.TIM_ICFilter = 0x00;//IC1F=0000 配置輸入濾波器 不濾波

TIM_ICInit(TIM5, &TIM5_ICInitStructure);

4)使能捕獲和更新中斷(設(shè)置 TIM5 的 DIER 寄存器)

TIM_ITConfig( TIM5,TIM_IT_Update|TIM_IT_CC1,ENABLE);//允許更新中斷和捕獲中斷

因?yàn)槲覀円东@的是高電平信號(hào)的脈寬,所以,第一次捕獲是上升沿,第二次捕獲時(shí)下降沿,必須在捕獲上升沿之后,設(shè)置捕獲邊沿為下降沿,同時(shí),如果脈寬比較長(zhǎng),那么定時(shí)器就會(huì)溢出,對(duì)溢出必須做處理,否則結(jié)果就不準(zhǔn)了。這兩件事,我們都在中斷里面做,所以必須開(kāi)啟捕獲中斷和更新中斷。

5)設(shè)置中斷分組,編寫(xiě)中斷服務(wù)函數(shù)

6)使能定時(shí)器(設(shè)置 TIM5 的 CR1 寄存器)

TIM_Cmd(TIM5,ENABLE ); //使能定時(shí)器 5

通過(guò)以上 6 步設(shè)置,定時(shí)器 5 的通道 1 就可以開(kāi)始輸入捕獲了。

五。 實(shí)驗(yàn)例程

//定時(shí)器 5 通道 1 輸入捕獲配置

TIM_ICInitTypeDef TIM5_ICInitStructure;

void TIM5_Cap_Init(u16 arr,u16 psc)

{

GPIO_InitTypeDef GPIO_InitStructure;

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE); //①使能 TIM5 時(shí)鐘

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //①使能 GPIOA 時(shí)鐘

//初始化 GPIOA.0 ①

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //PA0 設(shè)置

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //PA0 輸入

GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化 GPIOA.0

GPIO_ResetBits(GPIOA,GPIO_Pin_0); //PA0 下拉

//②初始化 TIM5 參數(shù)

TIM_TimeBaseStructure.TIM_Period = arr; //設(shè)定計(jì)數(shù)器自動(dòng)重裝值

TIM_TimeBaseStructure.TIM_Prescaler =psc; //預(yù)分頻器

TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; // TDTS = Tck_tim

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

TIM_TimeBaseInit(TIM5, &TIM_TimeBaseStructure); //初始化 TIMx

//③初始化 TIM5 輸入捕獲通道 1

TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1; //選擇輸入端 IC1 映射到 TI1 上

TIM5_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //上升沿捕獲

TIM5_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //映射到 TI1 上

TIM5_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; //配置輸入分頻,不分頻

TIM5_ICInitStructure.TIM_ICFilter = 0x00; //IC1F=0000 配置輸入濾波器 不濾波

TIM_ICInit(TIM5, &TIM5_ICInitStructure); //初始化 TIM5 輸入捕獲通道 1

//⑤初始化 NVIC 中斷優(yōu)先級(jí)分組

NVIC_InitStructure.NVIC_IRQChannel = TIM5_IRQn; //TIM3 中斷

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; //先占優(yōu)先級(jí) 2 級(jí)

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //從優(yōu)先級(jí) 0 級(jí)

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ 通道被使能

NVIC_Init(&NVIC_InitStructure); //初始化 NVIC

TIM_ITConfig( TIM5,TIM_IT_Update|TIM_IT_CC1,ENABLE);//④允許更新中斷捕獲中斷

TIM_Cmd(TIM5,ENABLE ); //⑥使能定時(shí)器 5

}

程序設(shè)計(jì)思路:



完成一次高電平捕獲后,只要 TIM5CH1_CAPTURE_STA 的第 7 位一直為 1,那么就不會(huì)進(jìn)行第二次捕獲,我們?cè)?main 函數(shù)處理完捕獲數(shù)據(jù)后,將 TIM5CH1_CAPTURE_STA置零,就可以開(kāi)啟第二次捕獲。

main函數(shù)中:

if(TIM5CH1_CAPTURE_STA&0X80)//成功捕獲到了一次上升沿

{

temp=TIM5CH1_CAPTURE_STA&0X3F;

temp*=65536;//溢出時(shí)間總和

temp+=TIM5CH1_CAPTURE_VAL;//得到總的高電平時(shí)間

printf("HIGH:%d usrn",temp); //打印總的高點(diǎn)平時(shí)間

TIM5CH1_CAPTURE_STA=0; //開(kāi)啟下一次捕獲

}


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

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉