PS:计算两个边沿触发间隔的时间时,不能简单的A-B,要考虑可能计数器已经溢出后重新一轮计数的情况。
    一般配置步骤

    1. 使能定时器x和相关IO口时钟。

      1. 使能定时器x时钟:RCC_APB1PeriphClockCmd();
      2. 使能GPIOx时钟:RCC_APB2PeriphClockCmd();
    2. 初始化IO口为上拉/下拉输入。函数:GPIO_Init();

      1. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD/GPIO_Mode_IPU;

    /**根据需要是否重映射

    1. 里我们是要把Pxx用作定时器x输入引脚,所以要重映射配置。(例子这里是部分重映射,自己使用时应当查表看是否需要重映射以及是什么重映射)
      1. 使能复用端口时钟: RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
      2. 部分重映射(此处可根据需要省略): GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);

    **/

    1. 初始化定时器:ARR,PSC等:TIM_TimeBaseInit();

    2. 配置输入捕获参数:TIM_ICInit();

    3. 设置捕获通道极性函数: TIM_OCxPolarityConfig()

    * 注释部分为需要开启中断时使用

    1. 使能指定的TIMx溢出中断,允许更新中断TIM_IT_Update: TIM_ITConfig(TIMx,TIM_IT_Update,ENABLE );
    2. 使能指定的TIMx捕获中断,允许更新中断TIM_IT_Update:
      1. TIM_ITConfig(TIMx,TIM_IT_CCx,ENABLE);
    3. 初始化NVIC中断优先级参数:NVIC_Init()
    4. 主函数main.c中要有中断优先级分组:NVIC_PriorityGroupConfig();

    */

    1. 使能定时器。TIM_Cmd();

    /*

    1. 编写中断服务函数 TIMx_IRQHandler();

    **/