找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1439|回复: 0
打印 上一主题 下一主题
收起左侧

stm32四路独立捕获代码

[复制链接]
跳转到指定楼层
楼主
ID:163861 发表于 2017-2-8 10:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "time234.h"

struct Tim_Capture Time_Capture;

void TIM2_Cap_Init(void)
{         
                TIM_ICInitTypeDef  TIM_ICInitStructure;
               
                GPIO_InitTypeDef GPIO_InitStructure;
                NVIC_InitTypeDef NVIC_InitStructure;

                RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

                RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
       

          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //PB0 êäèë
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;       
          GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
          GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
                GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0;  //PB0 Çå3y֮ǰéèÖà 
                GPIO_Init(GPIOA, &GPIO_InitStructure);
          GPIO_PinAFConfig(GPIOA, GPIO_PinSource0, GPIO_AF_TIM2);

          TIM_ICInitStructure.TIM_Channel = TIM_Channel_1; //CC1S=01         Ñ¡Ôñêäèë¶Ë IC1ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;        //éÏéyÑØ2¶»ñ
          TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV2;         //ÅäÖÃêäèë·ÖÆμ,2»·ÖÆμ
          TIM_ICInitStructure.TIM_ICFilter = 0x05;//IC1F=0000 ÅäÖÃêäèëÂË2¨Æ÷ 2»ÂË2¨
          TIM_ICInit(TIM2, &TIM_ICInitStructure);       
               
               
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //PB1 êäèë
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;       
          GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
          GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
                GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_1;  //PB1 Çå3y֮ǰéèÖà 
                GPIO_Init(GPIOA, &GPIO_InitStructure);
          GPIO_PinAFConfig(GPIOA, GPIO_PinSource1, GPIO_AF_TIM2);

               
       
          TIM_ICInitStructure.TIM_Channel = TIM_Channel_2; //CC1S=01         Ñ¡Ôñêäèë¶Ë IC1ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;        //éÏéyÑØ2¶»ñ
          TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV2;         //ÅäÖÃêäèë·ÖÆμ,2»·ÖÆμ
          TIM_ICInitStructure.TIM_ICFilter = 0x05;//IC1F=0000 ÅäÖÃêäèëÂË2¨Æ÷ 2»ÂË2¨
          TIM_ICInit(TIM2, &TIM_ICInitStructure);       
               
               
               
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //PA6 êäèë
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;       
          GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
          GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
                GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_2;  //PA6 Çå3y֮ǰéèÖà 
                GPIO_Init(GPIOA, &GPIO_InitStructure);
          GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_TIM2);

               
       
          TIM_ICInitStructure.TIM_Channel = TIM_Channel_3; //CC1S=01         Ñ¡Ôñêäèë¶Ë IC1ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;        //éÏéyÑØ2¶»ñ
          TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV2;         //ÅäÖÃêäèë·ÖÆμ,2»·ÖÆμ
          TIM_ICInitStructure.TIM_ICFilter = 0x05;//IC1F=0000 ÅäÖÃêäèëÂË2¨Æ÷ 2»ÂË2¨
          TIM_ICInit(TIM2, &TIM_ICInitStructure);       
               
               
               
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //PA6 êäèë
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;       
          GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
          GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
                GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_3;  //PA6 Çå3y֮ǰéèÖà 
                GPIO_Init(GPIOA, &GPIO_InitStructure);
          GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_TIM2);

               
       
          TIM_ICInitStructure.TIM_Channel = TIM_Channel_4; //CC1S=01         Ñ¡Ôñêäèë¶Ë IC1ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;        //éÏéyÑØ2¶»ñ
          TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV2;         //ÅäÖÃêäèë·ÖÆμ,2»·ÖÆμ
          TIM_ICInitStructure.TIM_ICFilter = 0x05;//IC1F=0000 ÅäÖÃêäèëÂË2¨Æ÷ 2»ÂË2¨
          TIM_ICInit(TIM2, &TIM_ICInitStructure);       
       
       
       
                TIM_Cmd(TIM2, DISABLE);
                TIM_ITConfig(TIM2, TIM_IT_CC1, DISABLE);
                TIM_ITConfig(TIM2, TIM_IT_CC2, DISABLE);
                TIM_ITConfig(TIM2, TIM_IT_CC3, DISABLE);
                TIM_ITConfig(TIM2, TIM_IT_CC4, DISABLE);

                NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
                NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
                NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
                NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
                NVIC_Init(&NVIC_InitStructure);
}


//¶¨ê±Æ÷2ÖD¶Ï·tÎñ3ìDò         

void TIM2_IRQHandler(void)
{
if (TIM_GetITStatus(TIM2, TIM_IT_CC4) != RESET)//2¶»ñ1·¢éú2¶»ñê¼t
                {         
                        TIM_ClearITPendingBit(TIM2, TIM_IT_CC4); //Çå3yÖD¶Ï±ê־λ
                                                if(Time_Capture.Time2_Capture.TIM2CH4_CAPTURE_STA==0)                                                                 //»1Î′¿aê¼,μúò»′Î2¶»ñéÏéyÑØ
                                                {
                                                        Time_Capture.Time2_Capture.TIM2CH4_CAPTURE_VAL_First=TIM_GetCapture4(TIM2);
                                                        Time_Capture.Time2_Capture.TIM2CH4_CAPTURE_STA=1;                //±ê¼Ç2¶»ñμ½áËéÏéyÑØ
                                                }       
                                                                else if(Time_Capture.Time2_Capture.TIM2CH4_CAPTURE_STA==1)                //2¶»ñμ½ò»¸öϽμÑØ                
                                                                        {                                 
                                                                                        {
                                                                                                        Time_Capture.Time2_Capture.TIM2CH4_CAPTURE_VAL=TIM_GetCapture4(TIM2);
                                                                                                        if(Time_Capture.Time2_Capture.TIM2CH4_CAPTURE_VAL<Time_Capture.Time2_Capture.TIM2CH4_CAPTURE_VAL_First)
                                                                                                        Time_Capture.Time2_Capture.TIM2CH4_Temp=65535+Time_Capture.Time2_Capture.TIM2CH4_CAPTURE_VAL-Time_Capture.Time2_Capture.TIM2CH4_CAPTURE_VAL_First;
                                                                                                        else Time_Capture.Time2_Capture.TIM2CH4_Temp=Time_Capture.Time2_Capture.TIM2CH4_CAPTURE_VAL-Time_Capture.Time2_Capture.TIM2CH4_CAPTURE_VAL_First;
                                                                                                        Time_Capture.Time2_Capture.TIM2CH4_CAPTURE_STA=0;       
                                                                                  }
                                                                        }
                                                       
                        }
       
       

                  
        if (TIM_GetITStatus(TIM2, TIM_IT_CC3) != RESET)//2¶»ñ1·¢éú2¶»ñê¼t
                {       
                        TIM_ClearITPendingBit(TIM2, TIM_IT_CC3); //Çå3yÖD¶Ï±ê־λ
                                                if(Time_Capture.Time2_Capture.TIM2CH3_CAPTURE_STA==0)                                                                 //»1Î′¿aê¼,μúò»′Î2¶»ñéÏéyÑØ
                                                {
                                                        Time_Capture.Time2_Capture.TIM2CH3_CAPTURE_VAL_First=TIM_GetCapture3(TIM2);
                                                        Time_Capture.Time2_Capture.TIM2CH3_CAPTURE_STA=1;                //±ê¼Ç2¶»ñμ½áËéÏéyÑØ
                                                }       
                                                                else if(Time_Capture.Time2_Capture.TIM2CH3_CAPTURE_STA==1)                //2¶»ñμ½ò»¸öϽμÑØ                
                                                                        {                                 
                                                                                        {
                                                                                                        Time_Capture.Time2_Capture.TIM2CH3_CAPTURE_VAL=TIM_GetCapture3(TIM2);
                                                                                                         if(Time_Capture.Time2_Capture.TIM2CH3_CAPTURE_VAL<Time_Capture.Time2_Capture.TIM2CH3_CAPTURE_VAL_First)
                                                                                                        Time_Capture.Time2_Capture.TIM2CH3_Temp=65535+Time_Capture.Time2_Capture.TIM2CH3_CAPTURE_VAL-Time_Capture.Time2_Capture.TIM2CH3_CAPTURE_VAL_First;
                                                                                                        else Time_Capture.Time2_Capture.TIM2CH3_Temp=Time_Capture.Time2_Capture.TIM2CH3_CAPTURE_VAL-Time_Capture.Time2_Capture.TIM2CH3_CAPTURE_VAL_First;
                                                                                                        Time_Capture.Time2_Capture.TIM2CH3_CAPTURE_STA=0;       
                                                                                        }
                                                                        }
               
                 }               
               
               
               
                if (TIM_GetITStatus(TIM2, TIM_IT_CC2) != RESET)//2¶»ñ1·¢éú2¶»ñê¼t
                {       
                        TIM_ClearITPendingBit(TIM2, TIM_IT_CC2); //Çå3yÖD¶Ï±ê־λ
                                                if(Time_Capture.Time2_Capture.TIM2CH2_CAPTURE_STA==0)                                                                 //»1Î′¿aê¼,μúò»′Î2¶»ñéÏéyÑØ
                                                {
                                                        Time_Capture.Time2_Capture.TIM2CH2_CAPTURE_VAL_First=TIM_GetCapture2(TIM2);
                                                        Time_Capture.Time2_Capture.TIM2CH2_CAPTURE_STA=1;                //±ê¼Ç2¶»ñμ½áËéÏéyÑØ
                                                }       
                                                                else if(Time_Capture.Time2_Capture.TIM2CH2_CAPTURE_STA==1)                //2¶»ñμ½ò»¸öϽμÑØ                
                                                                        {                                 
                                                                                        {
                                                                                                        Time_Capture.Time2_Capture.TIM2CH2_CAPTURE_VAL=TIM_GetCapture2(TIM2);
                                                                                                         if(Time_Capture.Time2_Capture.TIM2CH2_CAPTURE_VAL<Time_Capture.Time2_Capture.TIM2CH2_CAPTURE_VAL_First)
                                                                                                        Time_Capture.Time2_Capture.TIM2CH2_Temp=65535+Time_Capture.Time2_Capture.TIM2CH2_CAPTURE_VAL-Time_Capture.Time2_Capture.TIM2CH2_CAPTURE_VAL_First;
                                                                                                        else Time_Capture.Time2_Capture.TIM2CH2_Temp=Time_Capture.Time2_Capture.TIM2CH2_CAPTURE_VAL-Time_Capture.Time2_Capture.TIM2CH2_CAPTURE_VAL_First;
                                                                                                        Time_Capture.Time2_Capture.TIM2CH2_CAPTURE_STA=0;       
                                                                                        }
                                                                        }       
                }       
               
               
               
                        if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET)//2¶»ñ1·¢éú2¶»ñê¼t
                {       
                        TIM_ClearITPendingBit(TIM2, TIM_IT_CC1); //Çå3yÖD¶Ï±ê־λ
                                                 if(Time_Capture.Time2_Capture.TIM2CH1_CAPTURE_STA==0)                                                                 //»1Î′¿aê¼,μúò»′Î2¶»ñéÏéyÑØ
                                                {
                                                        Time_Capture.Time2_Capture.TIM2CH1_CAPTURE_VAL_First=TIM_GetCapture1(TIM2);
                                                        Time_Capture.Time2_Capture.TIM2CH1_CAPTURE_STA=1;                //±ê¼Ç2¶»ñμ½áËéÏéyÑØ
                                                }       
                                                                else if(Time_Capture.Time2_Capture.TIM2CH1_CAPTURE_STA==1)                //2¶»ñμ½ò»¸öϽμÑØ                
                                                                        {                                 
                                                                                        {
                                                                                                        Time_Capture.Time2_Capture.TIM2CH1_CAPTURE_VAL=TIM_GetCapture1(TIM2);
                                                                                                         if(Time_Capture.Time2_Capture.TIM2CH1_CAPTURE_VAL<Time_Capture.Time2_Capture.TIM2CH1_CAPTURE_VAL_First)
                                                                                                        Time_Capture.Time2_Capture.TIM2CH1_Temp=65535+Time_Capture.Time2_Capture.TIM2CH1_CAPTURE_VAL-Time_Capture.Time2_Capture.TIM2CH1_CAPTURE_VAL_First;
                                                                                                        else Time_Capture.Time2_Capture.TIM2CH1_Temp=Time_Capture.Time2_Capture.TIM2CH1_CAPTURE_VAL-Time_Capture.Time2_Capture.TIM2CH1_CAPTURE_VAL_First;
                                                                                                        Time_Capture.Time2_Capture.TIM2CH1_CAPTURE_STA=0;       
                                                                                        }
                                                                        }
                }       
       

}



//¶¨ê±Æ÷3í¨μà1\2\3\4êäèë2¶»ñÅäÖÃ
void TIM3_Cap_Init(void)
{         
       
        TIM_ICInitTypeDef  TIM_ICInitStructure;
       
        GPIO_InitTypeDef GPIO_InitStructure;
  NVIC_InitTypeDef NVIC_InitStructure;

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB|RCC_AHBPeriph_GPIOA, ENABLE);
       

          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //PB0 êäèë
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;       
          GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
          GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
                GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0;  //PB0 Çå3y֮ǰéèÖà 
                GPIO_Init(GPIOB, &GPIO_InitStructure);
          GPIO_PinAFConfig(GPIOB, GPIO_PinSource0, GPIO_AF_TIM3);

          TIM_ICInitStructure.TIM_Channel = TIM_Channel_3; //CC1S=01         Ñ¡Ôñêäèë¶Ë IC1ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;        //éÏéyÑØ2¶»ñ
          TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;         //ÅäÖÃêäèë·ÖÆμ,2»·ÖÆμ
          TIM_ICInitStructure.TIM_ICFilter = 0x02;//IC1F=0000 ÅäÖÃêäèëÂË2¨Æ÷ 2»ÂË2¨
          TIM_ICInit(TIM3, &TIM_ICInitStructure);       
               
               
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //PB1 êäèë
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;       
          GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
          GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
                GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_1;  //PB1 Çå3y֮ǰéèÖà 
                GPIO_Init(GPIOB, &GPIO_InitStructure);
          GPIO_PinAFConfig(GPIOB, GPIO_PinSource1, GPIO_AF_TIM3);

               
       
          TIM_ICInitStructure.TIM_Channel = TIM_Channel_4; //CC1S=01         Ñ¡Ôñêäèë¶Ë IC1ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;        //éÏéyÑØ2¶»ñ
          TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;         //ÅäÖÃêäèë·ÖÆμ,2»·ÖÆμ
          TIM_ICInitStructure.TIM_ICFilter = 0x02;//IC1F=0000 ÅäÖÃêäèëÂË2¨Æ÷ 2»ÂË2¨
          TIM_ICInit(TIM3, &TIM_ICInitStructure);       
               
               
               
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //PA6 êäèë
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;       
          GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
          GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
                GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_6;  //PA6 Çå3y֮ǰéèÖà 
                GPIO_Init(GPIOA, &GPIO_InitStructure);
          GPIO_PinAFConfig(GPIOA, GPIO_PinSource6, GPIO_AF_TIM3);

               
       
          TIM_ICInitStructure.TIM_Channel = TIM_Channel_1; //CC1S=01         Ñ¡Ôñêäèë¶Ë IC1ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;        //éÏéyÑØ2¶»ñ
          TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;         //ÅäÖÃêäèë·ÖÆμ,2»·ÖÆμ
          TIM_ICInitStructure.TIM_ICFilter = 0x02;//IC1F=0000 ÅäÖÃêäèëÂË2¨Æ÷ 2»ÂË2¨
          TIM_ICInit(TIM3, &TIM_ICInitStructure);       
               
               
               
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //PA6 êäèë
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;       
          GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
          GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
                GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_7;  //PA6 Çå3y֮ǰéèÖà 
                GPIO_Init(GPIOA, &GPIO_InitStructure);
          GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_TIM3);

               
       
          TIM_ICInitStructure.TIM_Channel = TIM_Channel_2; //CC1S=01         Ñ¡Ôñêäèë¶Ë IC1ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;        //éÏéyÑØ2¶»ñ
          TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;         //ÅäÖÃêäèë·ÖÆμ,2»·ÖÆμ
          TIM_ICInitStructure.TIM_ICFilter = 0x02;//IC1F=0000 ÅäÖÃêäèëÂË2¨Æ÷ 2»ÂË2¨
          TIM_ICInit(TIM3, &TIM_ICInitStructure);       
       
       
                TIM_Cmd(TIM3, DISABLE);
                TIM_ITConfig(TIM3, TIM_IT_CC1, DISABLE);
                TIM_ITConfig(TIM3, TIM_IT_CC2, DISABLE);
                TIM_ITConfig(TIM3, TIM_IT_CC3, DISABLE);
                TIM_ITConfig(TIM3, TIM_IT_CC4, DISABLE);

                NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
                NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
                NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
                NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
                NVIC_Init(&NVIC_InitStructure);
}




//¶¨ê±Æ÷3ÖD¶Ï·tÎñ3ìDò         
void TIM3_IRQHandler(void)
{
         
          if(TIM_GetITStatus(TIM3, TIM_IT_CC3) != RESET)//2¶»ñ1·¢éú2¶»ñê¼t
                {         
                            TIM_ClearITPendingBit(TIM3, TIM_IT_CC3); //Çå3yÖD¶Ï±ê־λ
                                        if(Time_Capture.Time3_Capture.TIM3CH3_CAPTURE_STA==0)                                                                 //»1Î′¿aê¼,μúò»′Î2¶»ñéÏéyÑØ
                                        {
                                                        Time_Capture.Time3_Capture.TIM3CH3_CAPTURE_VAL_First=TIM_GetCapture3(TIM3);
                                                        Time_Capture.Time3_Capture.TIM3CH3_CAPTURE_STA=1;                //±ê¼Ç2¶»ñμ½áËéÏéyÑØ
                                               

                                                TIM_OC3PolarityConfig(TIM3,TIM_ICPolarity_Falling);                //CC1P=1 éèÖÃÎaϽμÑØ2¶»ñ
                                        }       
                                        else if(Time_Capture.Time3_Capture.TIM3CH3_CAPTURE_STA==1)                //2¶»ñμ½ò»¸öϽμÑØ                
                                        {                                 
                                                        {
                                                                        Time_Capture.Time3_Capture.TIM3CH3_CAPTURE_VAL=TIM_GetCapture3(TIM3);
                                                                        if(Time_Capture.Time3_Capture.TIM3CH3_CAPTURE_VAL<Time_Capture.Time3_Capture.TIM3CH3_CAPTURE_VAL_First)
                                                                        Time_Capture.Time3_Capture.Tim3CH3_Temp=65535+Time_Capture.Time3_Capture.TIM3CH3_CAPTURE_VAL-Time_Capture.Time3_Capture.TIM3CH3_CAPTURE_VAL_First;
                                                                        else Time_Capture.Time3_Capture.Tim3CH3_Temp=Time_Capture.Time3_Capture.TIM3CH3_CAPTURE_VAL-Time_Capture.Time3_Capture.TIM3CH3_CAPTURE_VAL_First;
                                                                        Time_Capture.Time3_Capture.TIM3CH3_CAPTURE_STA=0;
                                                                       
                                                                         TIM_OC3PolarityConfig(TIM3,TIM_ICPolarity_Rising);                //CC1P=1 éèÖÃÎaϽμÑØ2¶»ñ
                                                        }
                                 }

                }
       
          if(TIM_GetITStatus(TIM3, TIM_IT_CC4) != RESET)//2¶»ñ1·¢éú2¶»ñê¼t
                {          
                           TIM_ClearITPendingBit(TIM3, TIM_IT_CC4); //Çå3yÖD¶Ï±ê־λ
                                        if(Time_Capture.Time3_Capture.TIM3CH4_CAPTURE_STA==0)                                                                 //»1Î′¿aê¼,μúò»′Î2¶»ñéÏéyÑØ
                                        {
                                                        Time_Capture.Time3_Capture.TIM3CH4_CAPTURE_VAL_First=TIM_GetCapture4(TIM3);
                                                        Time_Capture.Time3_Capture.TIM3CH4_CAPTURE_STA=1;                //±ê¼Ç2¶»ñμ½áËéÏéyÑØ
                                                 
                                                  TIM_OC4PolarityConfig(TIM3,TIM_ICPolarity_Falling);                //CC1P=1 éèÖÃÎaϽμÑØ2¶»ñ
                                        }       
                                        else if(Time_Capture.Time3_Capture.TIM3CH4_CAPTURE_STA==1)                //2¶»ñμ½ò»¸öϽμÑØ                
                                        {                                 
                                                        {
                                                                        Time_Capture.Time3_Capture.TIM3CH4_CAPTURE_VAL=TIM_GetCapture4(TIM3);
                                                                         if(Time_Capture.Time3_Capture.TIM3CH4_CAPTURE_VAL<Time_Capture.Time3_Capture.TIM3CH4_CAPTURE_VAL_First)
                                                                        Time_Capture.Time3_Capture.Tim3CH4_Temp=65535+Time_Capture.Time3_Capture.TIM3CH4_CAPTURE_VAL-Time_Capture.Time3_Capture.TIM3CH4_CAPTURE_VAL_First;
                                                                        else Time_Capture.Time3_Capture.Tim3CH4_Temp=Time_Capture.Time3_Capture.TIM3CH4_CAPTURE_VAL-Time_Capture.Time3_Capture.TIM3CH4_CAPTURE_VAL_First;
                                                                        Time_Capture.Time3_Capture.TIM3CH4_CAPTURE_STA=0;
                                                  
                                                                         TIM_OC4PolarityConfig(TIM3,TIM_ICPolarity_Rising);                //CC1P=1 éèÖÃÎaϽμÑØ2¶»ñ
                                                        }
                                        }
                }
               
               
               
                if(TIM_GetITStatus(TIM3, TIM_IT_CC2) != RESET)//2¶»ñ1·¢éú2¶»ñê¼t
                {          
                           TIM_ClearITPendingBit(TIM3, TIM_IT_CC2); //Çå3yÖD¶Ï±ê־λ
                                        if(Time_Capture.Time3_Capture.TIM3CH2_CAPTURE_STA==0)                                                                 //»1Î′¿aê¼,μúò»′Î2¶»ñéÏéyÑØ
                                        {
                                                        Time_Capture.Time3_Capture.TIM3CH2_CAPTURE_VAL_First=TIM_GetCapture2(TIM3);
                                                        Time_Capture.Time3_Capture.TIM3CH2_CAPTURE_STA=1;                //±ê¼Ç2¶»ñμ½áËéÏéyÑØ
                                                 
                                                  TIM_OC2PolarityConfig(TIM3,TIM_ICPolarity_Falling);                //CC1P=1 éèÖÃÎaϽμÑØ2¶»ñ
                                        }       
                                        else if(Time_Capture.Time3_Capture.TIM3CH2_CAPTURE_STA==1)                //2¶»ñμ½ò»¸öϽμÑØ                
                                        {                                 
                                                        {
                                                                        Time_Capture.Time3_Capture.TIM3CH2_CAPTURE_VAL=TIM_GetCapture2(TIM3);
                                                                         if(Time_Capture.Time3_Capture.TIM3CH2_CAPTURE_VAL<Time_Capture.Time3_Capture.TIM3CH2_CAPTURE_VAL_First)
                                                                        Time_Capture.Time3_Capture.Tim3CH2_Temp=65535+Time_Capture.Time3_Capture.TIM3CH2_CAPTURE_VAL-Time_Capture.Time3_Capture.TIM3CH2_CAPTURE_VAL_First;
                                                                        else Time_Capture.Time3_Capture.Tim3CH2_Temp=Time_Capture.Time3_Capture.TIM3CH2_CAPTURE_VAL-Time_Capture.Time3_Capture.TIM3CH2_CAPTURE_VAL_First;
                                                                        Time_Capture.Time3_Capture.TIM3CH2_CAPTURE_STA=0;
                                                  
                                                                         TIM_OC2PolarityConfig(TIM3,TIM_ICPolarity_Rising);                //CC1P=1 éèÖÃÎaϽμÑØ2¶»ñ
                                                        }
                                        }
                }
               
               
               
        if(TIM_GetITStatus(TIM3, TIM_IT_CC1) != RESET)//2¶»ñ1·¢éú2¶»ñê¼t
                {          
                           TIM_ClearITPendingBit(TIM3, TIM_IT_CC1); //Çå3yÖD¶Ï±ê־λ
                                        if(Time_Capture.Time3_Capture.TIM3CH1_CAPTURE_STA==0)                                                                 //»1Î′¿aê¼,μúò»′Î2¶»ñéÏéyÑØ
                                        {
                                                        Time_Capture.Time3_Capture.TIM3CH1_CAPTURE_VAL_First=TIM_GetCapture1(TIM3);
                                                        Time_Capture.Time3_Capture.TIM3CH1_CAPTURE_STA=1;                //±ê¼Ç2¶»ñμ½áËéÏéyÑØ
                                                 
                                                  TIM_OC1PolarityConfig(TIM3,TIM_ICPolarity_Falling);                //CC1P=1 éèÖÃÎaϽμÑØ2¶»ñ
                                        }       
                                        else if(Time_Capture.Time3_Capture.TIM3CH1_CAPTURE_STA==1)                //2¶»ñμ½ò»¸öϽμÑØ                
                                        {                                 
                                                        {
                                                                        Time_Capture.Time3_Capture.TIM3CH1_CAPTURE_VAL=TIM_GetCapture1(TIM3);
                                                                         if(Time_Capture.Time3_Capture.TIM3CH1_CAPTURE_VAL<Time_Capture.Time3_Capture.TIM3CH1_CAPTURE_VAL_First)
                                                                        Time_Capture.Time3_Capture.Tim3CH1_Temp=65535+Time_Capture.Time3_Capture.TIM3CH1_CAPTURE_VAL-Time_Capture.Time3_Capture.TIM3CH1_CAPTURE_VAL_First;
                                                                        else Time_Capture.Time3_Capture.Tim3CH1_Temp=Time_Capture.Time3_Capture.TIM3CH1_CAPTURE_VAL-Time_Capture.Time3_Capture.TIM3CH1_CAPTURE_VAL_First;
                                                                        Time_Capture.Time3_Capture.TIM3CH1_CAPTURE_STA=0;
                                                  
                                                                         TIM_OC1PolarityConfig(TIM3,TIM_ICPolarity_Rising);                //CC1P=1 éèÖÃÎaϽμÑØ2¶»ñ
                                                        }
                                        }

                }
                       
}




//¶¨ê±Æ÷4í¨μà1\2\3\4êäèë2¶»ñÅäÖÃ
void TIM4_Cap_Init(void)
{         
                TIM_ICInitTypeDef  TIM_ICInitStructure;
               
                GPIO_InitTypeDef GPIO_InitStructure;
                NVIC_InitTypeDef NVIC_InitStructure;
       
                RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
                RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
       

          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //PB0 êäèë
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;       
          GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
          GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
                GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_6;  //PB0 Çå3y֮ǰéèÖà 
                GPIO_Init(GPIOB, &GPIO_InitStructure);
          GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_TIM4);

               
       
          TIM_ICInitStructure.TIM_Channel = TIM_Channel_1; //CC1S=01         Ñ¡Ôñêäèë¶Ë IC1ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;        //éÏéyÑØ2¶»ñ
          TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //ó3éäμ½TI1éÏ
          TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;         //ÅäÖÃêäèë·ÖÆμ,2»·ÖÆμ
          TIM_ICInitStructure.TIM_ICFilter = 0x02;//IC1F=0000 ÅäÖÃêäèëÂË2¨Æ÷ 2»ÂË2¨
          TIM_ICInit(TIM4, &TIM_ICInitStructure);               
       
                GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;
                GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
                GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
                GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_7;
                GPIO_Init(GPIOB, &GPIO_InitStructure);
                GPIO_PinAFConfig(GPIOB, GPIO_PinSource7, GPIO_AF_TIM4);
       

                TIM_ICInitStructure.TIM_Channel     = TIM_Channel_2;
                TIM_ICInitStructure.TIM_ICPolarity  = TIM_ICPolarity_Rising;
                TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
                TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
                TIM_ICInitStructure.TIM_ICFilter = 0x2;
                TIM_ICInit(TIM4, &TIM_ICInitStructure);
       
       
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //PB0 êäèë  
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;
                GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
                GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
                GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_8;  //PB0 Çå3y֮ǰéèÖÃ
                GPIO_Init(GPIOB, &GPIO_InitStructure);
                GPIO_PinAFConfig(GPIOB, GPIO_PinSource8, GPIO_AF_TIM4);
               
                TIM_ICInitStructure.TIM_Channel     = TIM_Channel_3;
                TIM_ICInitStructure.TIM_ICPolarity  = TIM_ICPolarity_Rising;
                TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
                TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
                TIM_ICInitStructure.TIM_ICFilter = 0x0;
                TIM_ICInit(TIM4, &TIM_ICInitStructure);
       
       
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //PB0 êäèë  
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;
                GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
                GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
                GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_9;  //PB0 Çå3y֮ǰéèÖÃ
                GPIO_Init(GPIOB, &GPIO_InitStructure);
                GPIO_PinAFConfig(GPIOB, GPIO_PinSource9, GPIO_AF_TIM4);
               
                TIM_ICInitStructure.TIM_Channel     = TIM_Channel_4;
                TIM_ICInitStructure.TIM_ICPolarity  = TIM_ICPolarity_Rising;
                TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
                TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
                TIM_ICInitStructure.TIM_ICFilter = 0x0;
                TIM_ICInit(TIM4, &TIM_ICInitStructure);

                TIM_Cmd(TIM4, DISABLE);

    TIM_ITConfig(TIM4, TIM_IT_CC1, DISABLE);
          TIM_ITConfig(TIM4, TIM_IT_CC2, DISABLE);
    TIM_ITConfig(TIM4, TIM_IT_CC3, DISABLE);
          TIM_ITConfig(TIM4, TIM_IT_CC4, DISABLE);

                NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;
                NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
                NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
                NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
                NVIC_Init(&NVIC_InitStructure);

}


//¶¨ê±Æ÷3ÖD¶Ï·tÎñ3ìDò         
void TIM4_IRQHandler(void)
{
         
          if(TIM_GetITStatus(TIM4, TIM_IT_CC3) != RESET)//2¶»ñ1·¢éú2¶»ñê¼t
                {         
                            TIM_ClearITPendingBit(TIM4, TIM_IT_CC3); //Çå3yÖD¶Ï±ê־λ
                          if(Time_Capture.Time4_Capture.TIM4CH3_CAPTURE_STA==0)                                                                 //»1Î′¿aê¼,μúò»′Î2¶»ñéÏéyÑØ
                                        {
                                                        Time_Capture.Time4_Capture.TIM4CH3_CAPTURE_VAL_First=TIM_GetCapture3(TIM4);
                                                        Time_Capture.Time4_Capture.TIM4CH3_CAPTURE_STA=1;                //±ê¼Ç2¶»ñμ½áËéÏéyÑØ
                                               

                                                TIM_OC3PolarityConfig(TIM4,TIM_ICPolarity_Falling);                //CC1P=1 éèÖÃÎaϽμÑØ2¶»ñ
                                        }       
                                        else if(Time_Capture.Time4_Capture.TIM4CH3_CAPTURE_STA==1)                //2¶»ñμ½ò»¸öϽμÑØ                
                                        {                                 
                                                        {
                                                                        Time_Capture.Time4_Capture.TIM4CH3_CAPTURE_VAL=TIM_GetCapture3(TIM4);
                                                                        if(Time_Capture.Time4_Capture.TIM4CH3_CAPTURE_VAL<Time_Capture.Time4_Capture.TIM4CH3_CAPTURE_VAL_First)
                                                                        Time_Capture.Time4_Capture.Tim4CH3_Temp=65535+Time_Capture.Time4_Capture.TIM4CH3_CAPTURE_VAL-Time_Capture.Time4_Capture.TIM4CH3_CAPTURE_VAL_First;
                                                                        else Time_Capture.Time4_Capture.Tim4CH3_Temp=Time_Capture.Time4_Capture.TIM4CH3_CAPTURE_VAL-Time_Capture.Time4_Capture.TIM4CH3_CAPTURE_VAL_First;
                                                                        Time_Capture.Time4_Capture.TIM4CH3_CAPTURE_STA=0;
                                                                       
                                                                         TIM_OC3PolarityConfig(TIM4,TIM_ICPolarity_Rising);                //CC1P=1 éèÖÃÎaϽμÑØ2¶»ñ
                                                        }
                                 }

                }
       
          if(TIM_GetITStatus(TIM4, TIM_IT_CC4) != RESET)//2¶»ñ1·¢éú2¶»ñê¼t
                {          
                           TIM_ClearITPendingBit(TIM4, TIM_IT_CC4); //Çå3yÖD¶Ï±ê־λ
                                        if(Time_Capture.Time4_Capture.TIM4CH4_CAPTURE_STA==0)                                                                 //»1Î′¿aê¼,μúò»′Î2¶»ñéÏéyÑØ
                                        {
                                                        Time_Capture.Time4_Capture.TIM4CH4_CAPTURE_VAL_First=TIM_GetCapture4(TIM4);
                                                        Time_Capture.Time4_Capture.TIM4CH4_CAPTURE_STA=1;                //±ê¼Ç2¶»ñμ½áËéÏéyÑØ
                                                 
                                                  TIM_OC4PolarityConfig(TIM4,TIM_ICPolarity_Falling);                //CC1P=1 éèÖÃÎaϽμÑØ2¶»ñ
                                        }       
                                        else if(Time_Capture.Time4_Capture.TIM4CH4_CAPTURE_STA==1)                //2¶»ñμ½ò»¸öϽμÑØ                
                                        {                                 
                                                        {
                                                                        Time_Capture.Time4_Capture.TIM4CH4_CAPTURE_VAL=TIM_GetCapture4(TIM4);
                                                                         if(Time_Capture.Time4_Capture.TIM4CH4_CAPTURE_VAL<Time_Capture.Time4_Capture.TIM4CH4_CAPTURE_VAL_First)
                                                                        Time_Capture.Time4_Capture.Tim4CH4_Temp=65535+Time_Capture.Time4_Capture.TIM4CH4_CAPTURE_VAL-Time_Capture.Time4_Capture.TIM4CH4_CAPTURE_VAL_First;
                                                                        else Time_Capture.Time4_Capture.Tim4CH4_Temp=Time_Capture.Time4_Capture.TIM4CH4_CAPTURE_VAL-Time_Capture.Time4_Capture.TIM4CH4_CAPTURE_VAL_First;
                                                                        Time_Capture.Time4_Capture.TIM4CH4_CAPTURE_STA=0;
                                                  
                                                                         TIM_OC4PolarityConfig(TIM4,TIM_ICPolarity_Rising);                //CC1P=1 éèÖÃÎaϽμÑØ2¶»ñ
                                                        }
                                        }
                }
               
               
               
                if(TIM_GetITStatus(TIM4, TIM_IT_CC2) != RESET)//2¶»ñ1·¢éú2¶»ñê¼t
                {          
                           TIM_ClearITPendingBit(TIM4, TIM_IT_CC2); //Çå3yÖD¶Ï±ê־λ
                                        if(Time_Capture.Time4_Capture.TIM4CH2_CAPTURE_STA==0)                                                                 //»1Î′¿aê¼,μúò»′Î2¶»ñéÏéyÑØ
                                        {
                                                        Time_Capture.Time4_Capture.TIM4CH2_CAPTURE_VAL_First=TIM_GetCapture2(TIM4);
                                                        Time_Capture.Time4_Capture.TIM4CH2_CAPTURE_STA=1;                //±ê¼Ç2¶»ñμ½áËéÏéyÑØ
                                                 
                                                  TIM_OC2PolarityConfig(TIM4,TIM_ICPolarity_Falling);                //CC1P=1 éèÖÃÎaϽμÑØ2¶»ñ
                                        }       
                                        else if(Time_Capture.Time4_Capture.TIM4CH2_CAPTURE_STA==1)                //2¶»ñμ½ò»¸öϽμÑØ                
                                        {                                 
                                                        {
                                                                        Time_Capture.Time4_Capture.TIM4CH2_CAPTURE_VAL=TIM_GetCapture2(TIM4);
                                                                         if(Time_Capture.Time4_Capture.TIM4CH2_CAPTURE_VAL<Time_Capture.Time4_Capture.TIM4CH2_CAPTURE_VAL_First)
                                                                        Time_Capture.Time4_Capture.Tim4CH2_Temp=65535+Time_Capture.Time4_Capture.TIM4CH2_CAPTURE_VAL-Time_Capture.Time4_Capture.TIM4CH2_CAPTURE_VAL_First;
                                                                        else Time_Capture.Time4_Capture.Tim4CH2_Temp=Time_Capture.Time4_Capture.TIM4CH2_CAPTURE_VAL-Time_Capture.Time4_Capture.TIM4CH2_CAPTURE_VAL_First;
                                                                        Time_Capture.Time4_Capture.TIM4CH2_CAPTURE_STA=0;
                                                  
                                                                         TIM_OC2PolarityConfig(TIM4,TIM_ICPolarity_Rising);                //CC1P=1 éèÖÃÎaϽμÑØ2¶»ñ
                                                        }
                                        }
                }
               
               
               
        if(TIM_GetITStatus(TIM4, TIM_IT_CC1) != RESET)//2¶»ñ1·¢éú2¶»ñê¼t
                {          
                           TIM_ClearITPendingBit(TIM4, TIM_IT_CC1); //Çå3yÖD¶Ï±ê־λ
                                        if(Time_Capture.Time4_Capture.TIM4CH1_CAPTURE_STA==0)                                                                 //»1Î′¿aê¼,μúò»′Î2¶»ñéÏéyÑØ
                                        {
                                                        Time_Capture.Time4_Capture.TIM4CH1_CAPTURE_VAL_First=TIM_GetCapture1(TIM4);
                                                        Time_Capture.Time4_Capture.TIM4CH1_CAPTURE_STA=1;                //±ê¼Ç2¶»ñμ½áËéÏéyÑØ
                                                 
                                                TIM_OC1PolarityConfig(TIM4,TIM_ICPolarity_Falling);                //CC1P=1 éèÖÃÎaϽμÑØ2¶»ñ
                                        }       
                                        else if(Time_Capture.Time4_Capture.TIM4CH1_CAPTURE_STA==1)                //2¶»ñμ½ò»¸öϽμÑØ                
                                        {                                 
                                                        {
                                                                        Time_Capture.Time4_Capture.TIM4CH1_CAPTURE_VAL=TIM_GetCapture1(TIM4);
                                                                         if(Time_Capture.Time4_Capture.TIM4CH1_CAPTURE_VAL<Time_Capture.Time4_Capture.TIM4CH1_CAPTURE_VAL_First)
                                                                        Time_Capture.Time4_Capture.Tim4CH1_Temp=65535+Time_Capture.Time4_Capture.TIM4CH1_CAPTURE_VAL-Time_Capture.Time4_Capture.TIM4CH1_CAPTURE_VAL_First;
                                                                        else Time_Capture.Time4_Capture.Tim4CH1_Temp=Time_Capture.Time4_Capture.TIM4CH1_CAPTURE_VAL-Time_Capture.Time4_Capture.TIM4CH1_CAPTURE_VAL_First;
                                                                        Time_Capture.Time4_Capture.TIM4CH1_CAPTURE_STA=0;
                                                  
                                                                         TIM_OC1PolarityConfig(TIM4,TIM_ICPolarity_Rising);                //CC1P=1 éèÖÃÎaϽμÑØ2¶»ñ
                                                        }
                                        }

                }
                       
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表