直接分析代码:
/*************************************************************
函数名: PWMInput_GPIO_Init
说明: PWM输入捕获引脚配置
*************************************************************/
#include "misc.h" //这两个文件是标准库里的,misc.h是NVIC(中断向量嵌套)的外设驱动。STM32 V3.5版本把以前版本中单独对 // 于NVIC(中断向量嵌套)的外设驱动放在了misc.c中,代替原来的stm32f10x_nvic.c.
#include "usart1.h" //串口函数库
static void PWMInput_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//使能GPIOA端口的时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //TIM2 PA1 配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
/*************************************************************
函数名: PWMInput_TIM2_Init
说明:TIM2的PWM输入捕获的初始化
*************************************************************/
static void PWMInput_TIM2_Init(void)
{
//先是计时器设置
TIM_ICInitTypeDef TIM_ICInitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);//使能TIM2时钟,TIM2~TIM7都挂在APB1
TIM_TimeBaseStructure.TIM_Period = 0xFFFF;//ARR:0~FFFF(0~65535)计数值(一个计数周期用多少个计数器时钟周期)
TIM_TimeBaseStructure.TIM_Prescaler = 0;//TIMx时钟频率分频的分频值