日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]利用STM32的PWM輸入捕獲功能,可以測(cè)方波的占空比和(或)頻率使用時(shí)將相應(yīng)的輸入配置為對(duì)應(yīng)定時(shí)器對(duì)應(yīng)的復(fù)用功能,外部待測(cè)量波形從該引腳輸入再配置定時(shí)器輸入捕獲功能相應(yīng)參數(shù),選擇主從模式,最后打開中斷或者DMA讀

利用STM32的PWM輸入捕獲功能,可以測(cè)方波的占空比和(或)頻率

使用時(shí)將相應(yīng)的輸入配置為對(duì)應(yīng)定時(shí)器對(duì)應(yīng)的復(fù)用功能,外部待測(cè)量波形從該引腳輸入

再配置定時(shí)器輸入捕獲功能相應(yīng)參數(shù),選擇主從模式,最后打開中斷或者DMA讀取測(cè)量數(shù)據(jù)

1. Enable TIM clock

2. Configure the TIM pins by configuring the corresponding GPIO pins

3. Fill the TIM_ICInitStruct

5. Call TIM_ICInit(TIMx, &TIM_ICInitStruct) ;. Call TIM_PWMIConfig(TIMx, &TIM_ICInitStruct) ;

6. Enable the NVIC or the DMA to read the measured frequency.

7. Enable the corresponding interrupt (or DMA request) to read the Captured value

8. Configure the slave mode controller in reset mode

9. Call the TIM_Cmd(ENABLE) function to enable the TIM counter.

10. Use TIM_GetCapturex(TIMx); to read the captured value.

代碼:

#ifndef __PWM_INPUT_H

#define __PWM_INPUT_H

#include "main.h"

#define PWM_INPUT_TIM TIM3

#define PWM_INPUT_TIM_CLK RCC_APB1Periph_TIM3

#define PWM_INPUT_CHANNEL TIM_Channel_2

#define PWM_INPUT_PIN GPIO_Pin_4

#define PWM_INPUT_PORT GPIOA

#define PWM_INPUT_GPIOCLK RCC_AHBPeriph_GPIOA

#define PWM_INPUT_GPIOAF GPIO_AF_2

#define PWM_INPUT_PINSOURCE GPIO_PinSource4

void PWM_INPUT_Config(void);

void TIM3_IRQHandler(void);

#endif

//========================================================/

#include "PWM_Input.h"

volatile uint16_t IC2Value = 0;

volatile uint16_t DutyCycle = 0;

volatile uint32_t Frequency = 0;

void PWM_INPUT_Config(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

NVIC_InitTypeDef NVIC_InitStructure;

TIM_ICInitTypeDef TIM_ICInitStructure;


RCC_AHBPeriphClockCmd(PWM_INPUT_GPIOCLK,ENABLE);

RCC_APB1PeriphClockCmd(PWM_INPUT_TIM_CLK,ENABLE);


GPIO_InitStructure.GPIO_Pin = PWM_INPUT_PIN;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;

GPIO_Init(PWM_INPUT_PORT, &GPIO_InitStructure);

GPIO_PinAFConfig(PWM_INPUT_PORT, PWM_INPUT_PINSOURCE, PWM_INPUT_GPIOAF);


NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);


TIM_ICInitStructure.TIM_Channel=PWM_INPUT_CHANNEL;

TIM_ICInitStructure.TIM_ICFilter=0x0;

TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising;

TIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1;

TIM_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI;

TIM_PWMIConfig(PWM_INPUT_TIM,&TIM_ICInitStructure);

TIM_SelectInputTrigger(PWM_INPUT_TIM,TIM_TS_TI2FP2);

TIM_SelectSlaveMode(PWM_INPUT_TIM,TIM_SlaveMode_Reset);

TIM_SelectMasterSlaveMode(PWM_INPUT_TIM,TIM_MasterSlaveMode_Enable);

TIM_Cmd(PWM_INPUT_TIM,ENABLE);

TIM_ITConfig(PWM_INPUT_TIM,TIM_IT_CC2,ENABLE);

}

void TIM3_IRQHandler(void)

{

TIM_ClearITPendingBit(TIM3, TIM_IT_CC2);

IC2Value = TIM_GetCapture2(TIM3);

if (IC2Value != 0)

{

DutyCycle = (TIM_GetCapture1(TIM3) * 100) / IC2Value;

Frequency = 72000000 / IC2Value;

}

else

{

DutyCycle = 0;

Frequency = 0;

}

// printf("DutyCycle= %dn",DutyCycle);

// printf("Frequency= %dn",Frequency);

}


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

pwm控制的基本原理隨著電力需求的不斷增加,電源管理技術(shù)愈加重要。開關(guān)電源作為一種高效能、可靠性高的電源,找到廣泛的應(yīng)用。

關(guān)鍵字: pwm 控制 電源

在這篇文章中,小編將對(duì)pwm的相關(guān)內(nèi)容和情況加以介紹以幫助大家增進(jìn)對(duì)它的了解程度,和小編一起來閱讀以下內(nèi)容吧。

關(guān)鍵字: pwm 脈沖寬度調(diào)制

在下述的內(nèi)容中,小編將會(huì)對(duì)PWM控制器的相關(guān)消息予以報(bào)道,如果PWM控制器是您想要了解的焦點(diǎn)之一,不妨和小編共同閱讀這篇文章哦。

關(guān)鍵字: pwm 控制器 pwm控制器

在下述的內(nèi)容中,小編將會(huì)對(duì)PWM的相關(guān)消息予以報(bào)道,如果PWM是您想要了解的焦點(diǎn)之一,不妨和小編共同閱讀這篇文章哦。

關(guān)鍵字: pwm 變換器

在這篇文章中,小編將為大家?guī)鞵WM變換器的相關(guān)報(bào)道。如果你對(duì)本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關(guān)鍵字: pwm 變換器 pwm變換器

pwm控制器將是下述內(nèi)容的主要介紹對(duì)象,通過這篇文章,小編希望大家可以對(duì)pwm控制器的相關(guān)情況以及信息有所認(rèn)識(shí)和了解,詳細(xì)內(nèi)容如下。

關(guān)鍵字: pwm 控制器 mppt

今天,小編將在這篇文章中為大家?guī)韕wm控制器的有關(guān)報(bào)道,通過閱讀這篇文章,大家可以對(duì)pwm控制器具備清晰的認(rèn)識(shí),主要內(nèi)容如下。

關(guān)鍵字: pwm 控制器 mppt

CPU風(fēng)扇轉(zhuǎn)速調(diào)節(jié)很很多方法,其中有一種就是設(shè)置PWM斜率值,這是一種脈沖寬度調(diào)制方法,該操作需要在UEFI BIOS中設(shè)置,若是用戶并未使用過PWM值,可以看看下文了解主板風(fēng)扇PWM調(diào)速設(shè)置過程。

關(guān)鍵字: pwm 調(diào)節(jié)

隨著電子技術(shù)的發(fā)展,出現(xiàn)了多種PWM技術(shù),其中包括:相電壓控制PWM、脈寬PWM法、隨機(jī)PWM、SPWM法、線電壓控制PWM等,而在鎳氫電池智能充電器中采用的脈寬PWM法,它是把每一脈沖寬度均相等的脈沖列作為PWM波形,...

關(guān)鍵字: pwm 解析

PWM調(diào)光是什么

關(guān)鍵字: pwm 正弦半波
關(guān)閉