OpenEdv-开源电子网

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

TIM2外部时钟模式2

[复制链接]

1

主题

4

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2017-7-9
在线时间
7 小时
发表于 2017-7-29 09:38:17 | 显示全部楼层 |阅读模式
2金钱
[mw_shl_code=c,true]//外部输入
void TIM2_Init(void)
{
    TIM_TimeBaseInitTypeDef     TIM_TimeBaseInitTypeDef;
    GPIO_InitTypeDef            GPIO_InitTypeDef;
    NVIC_InitTypeDef            NVIC_InitTypeDef;
   
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
      
    GPIO_InitTypeDef.GPIO_Mode=GPIO_Mode_AF;
    GPIO_InitTypeDef.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;
    GPIO_InitTypeDef.GPIO_OType=GPIO_OType_OD;
    GPIO_InitTypeDef.GPIO_PuPd=GPIO_PuPd_NOPULL;
    GPIO_InitTypeDef.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOA,&GPIO_InitTypeDef);
   
    GPIO_PinAFConfig(GPIOA,GPIO_PinSource0,GPIO_AF_TIM2);
    GPIO_PinAFConfig(GPIOA,GPIO_PinSource1,GPIO_AF_TIM2);
   
    TIM_DeInit(TIM2);
   
    TIM_TimeBaseInitTypeDef.TIM_ClockDivision=TIM_CKD_DIV1;
    TIM_TimeBaseInitTypeDef.TIM_CounterMode=TIM_CounterMode_Up;
    TIM_TimeBaseInitTypeDef.TIM_Period=0xffff;
    TIM_TimeBaseInitTypeDef.TIM_Prescaler=0x00;
    TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitTypeDef);
   
    TIM_ARRPreloadConfig(TIM2,ENABLE);
   
    TIM_UpdateRequestConfig(TIM2,TIM_UpdateSource_Regular);//Configures the TIMx Update Request Interrupt source.
   
    //Configures the TIMx External Trigger (ETR)
    TIM_ETRClockMode2Config(TIM2,TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0);
   
    //配置输入触发源
    TIM_SelectInputTrigger(TIM2,TIM_TS_ETRF);// External Trigger input
  
    TIM_SetCounter(TIM2,0);
    TIM_ClearFlag(TIM2,TIM_FLAG_Update);
    TIM_ClearFlag(TIM2,TIM_FLAG_Trigger);
   
    TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
    TIM_ITConfig(TIM2,TIM_FLAG_Trigger,ENABLE);
   
   
    NVIC_InitTypeDef.NVIC_IRQChannel=TIM2_IRQn;
    NVIC_InitTypeDef.NVIC_IRQChannelPreemptionPriority=2;
    NVIC_InitTypeDef.NVIC_IRQChannelSubPriority=2;
    NVIC_InitTypeDef.NVIC_IRQChannelCmd=ENABLE;
    NVIC_Init(&NVIC_InitTypeDef);
   
    TIM_Cmd(TIM2,DISABLE);
         
}
u32  num=0;
u32  m=0;
void TIM2_IRQHandler(void)
{
    if(TIM_GetITStatus(TIM2,TIM_IT_Update) == SET)
    {
       num++;
       TIM_SetCounter(TIM2,0);
       TIM_ClearITPendingBit(TIM2,TIM_IT_Update);     
    }
     if(TIM_GetITStatus(TIM2,TIM_IT_Trigger) == SET)
    {
         m++;
         TIM_SetCounter(TIM2,0);
         TIM_ClearITPendingBit(TIM2,TIM_IT_Trigger);
    }
}
//定时1s[/mw_shl_code]


求助 为什么可以计数 但是没办法触发中断.

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

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2017-7-9
在线时间
7 小时
 楼主| 发表于 2017-7-29 09:39:29 | 显示全部楼层
我是想设置成外部时钟模式2,无奈只能计数望帮助
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-7-29 22:40:17 | 显示全部楼层
论坛搜索下了
回复

使用道具 举报

4

主题

17

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2019-6-4
在线时间
16 小时
发表于 2019-7-4 17:02:16 | 显示全部楼层
TIM_Cmd(TIM2,DISABLE);
问题出在这里吧,定时器都被你关了。。。
回复

使用道具 举报

4

主题

17

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2019-6-4
在线时间
16 小时
发表于 2019-7-5 09:56:31 | 显示全部楼层
TIM_Cmd(TIM2,DISABLE);
问题出在这里吧,定时器都被你关了。。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-14 09:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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