OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2769|回复: 3

TIME1 引脚重映射后串口不工作了

[复制链接]

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2016-7-20
在线时间
11 小时
发表于 2018-5-17 22:21:06 | 显示全部楼层 |阅读模式
1金钱
void TIM1_Time_Init(u16 arr,u16 psc)
{
        //TIM1_Init(4999,7199);
      //¼ÆÊýƵÂÊ=Tclk/7200=72000000/7200=10000Hz  ¼ÆÒ»¸öÊýÓÃʱ1/10000s  ¼ÆÊý5000´Î=5000/10000s=500ms
      //Tout(Òç³öʱ¼ä)=(arr+1)*(psc+1)/Tclk =5000*7200/72000000s=500ms
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        NVIC_InitTypeDef NVIC_InitStructure;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
        
        TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);//ÉèÖÃȱʡֵ,ÕâÒ»²½×îºÃ¼ÓÉÏ
        TIM_TimeBaseStructure.TIM_Period = arr; //×Ô¶¯ÖØ×°ÔؼĴæÆ÷ÖÜÆÚµÄÖµ£¬Òç³öÖµ   
        TIM_TimeBaseStructure.TIM_Prescaler =psc; //ʱÖÓÆµÂÊÔ¤·ÖƵֵ
        TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //ÉèÖÃʱÖÓ·Ö¸î:ÊäÈë²¶»ñģʽÓÃÀ´Â˲¨
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIMÏòÉϼÆÊýģʽ
      TIM_TimeBaseStructure.TIM_RepetitionCounter=0;//ÉèÖÃÖØ¸´Òç³ö´ÎÊý£¬¾ÍÊǶàÉÙ´ÎÒç³öºó½øÈëÖжϣ¬Ò»°ãΪ0£¬Ö»Óи߼¶¶¨Ê±Æ÷²ÅÓÐÓÃ
        TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);

        TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE ); //ÔÊÐí¸üÐÂÖжÏ

        NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 5;  
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;  
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);  

        TIM_Cmd(TIM1, ENABLE);  
}
void TIM1_InputCapture_Init(u16 arr,u16 psc)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
    NVIC_InitTypeDef NVIC_InitStructure;
  TIM_ICInitTypeDef TIM_ICInitStructure;
   
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
    //RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE);  //ʹÄÜGPIOÍâÉèºÍAFIO¸´Óù¦ÄÜÄ£¿éʱÖÓ
    GPIO_PinRemapConfig(GPIO_FullRemap_TIM1 , ENABLE); //Timer3ÍêÈ«ÖØÓ³Éä TIM3     
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);  

   
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_11|GPIO_Pin_13|GPIO_Pin_14;  
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
    GPIO_Init(GPIOE, &GPIO_InitStructure);


    TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);//ÉèÖÃȱʡֵ,ÕâÒ»²½×îºÃ¼ÓÉÏ
    TIM_TimeBaseStructure.TIM_Period = arr; //×Ô¶¯ÖØ×°ÔؼĴæÆ÷ÖÜÆÚµÄÖµ£¬Òç³öÖµ   
    TIM_TimeBaseStructure.TIM_Prescaler =psc; //ʱÖÓÆµÂÊÔ¤·ÖƵֵ
    TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //ÉèÖÃʱÖÓ·Ö¸î:ÊäÈë²¶»ñģʽÓÃÀ´Â˲¨
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIMÏòÉϼÆÊýģʽ
    TIM_TimeBaseStructure.TIM_RepetitionCounter=0;//ÉèÖÃÖØ¸´Òç³ö´ÎÊý£¬¾ÍÊǶàÉÙ´ÎÒç³öºó½øÈëÖжϣ¬Ò»°ãΪ0£¬Ö»Óи߼¶¶¨Ê±Æ÷²ÅÓÐÓÃ
    TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);


    TIM_ICStructInit(&TIM_ICInitStructure);//ÉèÖÃȱʡֵ,ÕâÒ»²½×îºÃ¼ÓÉÏ
    TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;    //ÉÏÉýÑØ²¶»ñ
    TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //Ó³Éäµ½TI1ÉÏ
    TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;      //ÅäÖÃÊäÈë·ÖƵ,²»·ÖƵ
    TIM_ICInitStructure.TIM_ICFilter = 0x00;      //IC1F=0000 ÅäÖÃÊäÈëÂ˲¨Æ÷ 0²»Â˲¨
   
    //²¶»ñͨµÀ1
    TIM_ICInitStructure.TIM_Channel = TIM_Channel_1; //IC1Ó³Éäµ½TI1ÉÏ£¬ÕâËľ䲻Äܺϲ¢
    TIM_ICInit(TIM1, &TIM_ICInitStructure);
    //²¶»ñͨµÀ2
    TIM_ICInitStructure.TIM_Channel = TIM_Channel_2; //IC1Ó³Éäµ½TI1ÉÏ£¬ÕâËľ䲻Äܺϲ¢
    TIM_ICInit(TIM1, &TIM_ICInitStructure);
        //²¶»ñͨµÀ3
    TIM_ICInitStructure.TIM_Channel = TIM_Channel_3; //IC1Ó³Éäµ½TI1ÉÏ£¬ÕâËľ䲻Äܺϲ¢
    TIM_ICInit(TIM1, &TIM_ICInitStructure);

    //²¶»ñͨµÀ4
    TIM_ICInitStructure.TIM_Channel = TIM_Channel_4; //IC4Ó³Éäµ½TI4ÉÏ£¬ÕâËľ䲻Äܺϲ¢
    TIM_ICInit(TIM1, &TIM_ICInitStructure);
   
    //ÖжϷÖ×é³õʼ»¯
    NVIC_InitStructure.NVIC_IRQChannel = TIM1_CC_IRQn;  
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);   

    TIM_ITConfig(TIM1,TIM_IT_Update|TIM_IT_CC1|TIM_IT_CC4,ENABLE);   //ÔÊÐí¸üÐÂÖжϣ¬ÔÊÐíCC1IE,CC2IE,CC3IE,CC4IE²¶»ñÖжϠ  
    TIM_CtrlPWMOutputs(TIM1,ENABLE);    //Ö÷Êä³öʹÄÜ
    TIM_Cmd(TIM1, ENABLE);         //ʹÄܶ¨Ê±Æ÷4
}
各位大佬看看哪里错了

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-5-18 01:26:12 | 显示全部楼层
回复

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2016-7-20
在线时间
11 小时
 楼主| 发表于 2018-5-18 17:18:10 | 显示全部楼层

我用的是A9A10所以不能用全部重映射但是我用了部分从映射还是不能用呢
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-5-19 01:15:44 | 显示全部楼层
嗒嗒娃娃 发表于 2018-5-18 17:18
我用的是A9A10所以不能用全部重映射但是我用了部分从映射还是不能用呢

先不映射,能用不
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 13:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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