GD32F103C芯片通用定时器哪些有stm32对应的TIM_ETR

[复制链接]
815|11
手机看帖
扫描二维码
随时随地手机跟帖
jeoj|  楼主 | 2020-11-19 16:56 | 显示全部楼层 |阅读模式
最近在写gd32外部脉冲捕获的程序,一直没有调试出来,现在怀疑自己用的PB0(TIMER2_CH2)是不是可以用外部时钟模式进行外部脉冲计数?

使用特权

评论回复
castle520| | 2020-11-19 22:03 | 显示全部楼层
有的,对应ST的ETR,GD的timer也有外部时钟模式,如下图
Snipaste_2020-11-19_22-00-40.bmp

使用外部时钟模式0的代码如下
    timer_parameter_struct timer_initpara;

    rcu_periph_clock_enable(RCU_TIMER2);

    /* TIMER2  configuration */
    timer_deinit(TIMER2);

    timer_initpara.prescaler         = 0;
    timer_initpara.alignedmode       = TIMER_COUNTER_CENTER_BOTH;
    timer_initpara.counterdirection  = TIMER_COUNTER_UP;
    timer_initpara.period            = 1;
    timer_initpara.clockdivision     = TIMER_CKDIV_DIV1;
    timer_initpara.repetitioncounter = 0;
    timer_init(TIMER2,&timer_initpara);

    timer_input_trigger_source_select(TIMER2,TIMER_SMCFG_TRGSEL_CI0FE0);
    timer_slave_mode_select(TIMER2,TIMER_SLAVE_MODE_EXTERNAL0);
    timer_master_slave_mode_config(TIMER2,TIMER_MASTER_SLAVE_MODE_ENABLE);
    /* TIMER counter enable */
    timer_enable(TIMER2);

使用特权

评论回复
liangshuang95| | 2020-11-20 07:46 | 显示全部楼层
如果没有这个功能的话,那这个定时器就是废的。

使用特权

评论回复
jeoj|  楼主 | 2020-11-20 14:30 | 显示全部楼层
castle520 发表于 2020-11-19 22:03
有的,对应ST的ETR,GD的timer也有外部时钟模式,如下图

好的 我知道了,谢谢!

使用特权

评论回复
jeoj|  楼主 | 2020-11-24 12:31 | 显示全部楼层
castle520 发表于 2020-11-19 22:03
有的,对应ST的ETR,GD的timer也有外部时钟模式,如下图

//初始化TIM2输入捕获参数
  TIM2_ICInitStructure.TIM_Channel = TIM_Channel_2; //CC1S=01         选择输入端 IC1映射到TI1上
  TIM2_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;        //上升沿捕获
  TIM2_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //映射到TI1上
  TIM2_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;         //配置输入分频,不分频
TIM2_ICInitStructure.TIM_ICFilter = 0x00;//IC1F=0000 配置输入滤波器 不滤波
  TIM_ICInit(TIM2, &TIM2_ICInitStructure);

博主,timer_input_trigger_source_select(TIMER2,TIMER_SMCFG_TRGSEL_CI0FE0);函数中变量TIMER_SMCFG_TRGSEL_CI0FE0和以上配置输入滤波器有关系吗,我这里配置不滤波的话,这个参数也是这样吗。(我是用的stm32移植到gd32的)

使用特权

评论回复
Puremr| | 2020-11-25 22:30 | 显示全部楼层
一般来说,定时器时既可以用作定时器,也可以用作计数器的,这是定时器的通用功能。

使用特权

评论回复
castle520| | 2020-11-26 00:28 | 显示全部楼层
jeoj 发表于 2020-11-24 12:31
//初始化TIM2输入捕获参数
  TIM2_ICInitStructure.TIM_Channel = TIM_Channel_2; //CC1S=01         选择输入端 ...

CI0FE0的通俗的意思是“输入通道0的引脚”(CI0)和“捕获单元0”(FE0),这个代码意思就是把CI0FE0作为触发源,和滤波没关系的,加不加滤波都一样

使用特权

评论回复
heimaojingzhang| | 2020-12-4 12:26 | 显示全部楼层
用的什么触发模式啊

使用特权

评论回复
keaibukelian| | 2020-12-4 12:28 | 显示全部楼层
就是看gd有哪些普通的定时器啊

使用特权

评论回复
labasi| | 2020-12-4 12:29 | 显示全部楼层
是不是捕获源没偶信号啊

使用特权

评论回复
paotangsan| | 2020-12-4 12:31 | 显示全部楼层
开启中断使能了吗  还有一个是总中断的

使用特权

评论回复
renzheshengui| | 2020-12-4 12:32 | 显示全部楼层
跟滤波的那个配置没有什么关系

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

7

帖子

0

粉丝