5087|6

52

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

STM32的TIMER做外部计数用途 [复制链接]

我用Timer数数,数外面的IO口上来了多少个脉冲
一直没有搞定,高手出手帮个忙

    TIM_ICStructInit(&TIM_ICInitStructure);
    TIM_ICInitStructure.TIM_ICMode = TIM_ICMode_ICAP; 
    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 = 0;
    TIM_ICInit(TIM3, &TIM_ICInitStructure);
此帖出自stm32/stm8论坛

最新回复

                                   你好能不能把你的工程发我看看,我自己也写了,可是实际就是不计数 RCC_Configuration(); // System Clocks Configuration NVIC_Configuration(); // NVIC configuration GPIO_Configuration(); // Configure the GPIO ports TIM_TimeBaseStructure.TIM_Period = 0xFFFF; TIM_TimeBaseStructure.TIM_Prescaler = 0x00; TIM_TimeBaseStructure.TIM_ClockDivision =0x00; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); // Time base configuration TIM_ETRClockMode2Config(TIM2, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0); TIM_SetCounter(TIM2, 0); TIM_Cmd(TIM2, ENABLE); for(i=0;i<1000;i++) { n = TIM_GetCounter(TIM2); Delay(10); }  详情 回复 发表于 2010-10-15 16:13
点赞 关注
 

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

正在仔细看这张图

Figure 73. General-purpose timer block diagram

仔细看文档,看来只看FWLibray资料扫盲速成可以,真要用还得靠“Reference manua”
此帖出自stm32/stm8论坛
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

STM32的TIMER做外部计数,最好使用外部时钟模式

                                 如果外部脉冲很快的话,最好使用外部时钟模式;如果外部脉冲不是很快,可以考虑用外部中断并软件计数的办法。
此帖出自stm32/stm8论坛
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

4
 

香版,给个外部时钟的Sample

                                 举一反三不会,举一反二总可以吧
此帖出自stm32/stm8论坛
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

5
 

顶自己的问题贴

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

6
 

自助者方得神助,终于搞定了

--------------设置------------------------
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 | RCC_APB1Periph_TIM3, ENABLE);

    // Time base configuration
    TIM_TimeBaseStructure.TIM_Period = 0xFFFF;
    TIM_TimeBaseStructure.TIM_Prescaler = 0x00;
    TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

    TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

    TIM_ETRClockMode2Config(TIM2, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0);
--------------测试---------------------------------------

    TIM_SetCounter(TIM2, 0);
    TIM_Cmd(TIM2, ENABLE);

    for(i=0;i<0xA000;i++)
    {
        nRes = TIM_GetCounter(TIM2);
        GPIO_SetBits(GPIOD, GPIO_Pin_0);
        Delay(1);
        GPIO_ResetBits(GPIOD, GPIO_Pin_0);
        Delay(1);
    }
此帖出自stm32/stm8论坛
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

7
 

你好能不能把你的工程发我看看,我自己也写了,可是实际就是不计数

RCC_Configuration(); // System Clocks Configuration
NVIC_Configuration(); // NVIC configuration
GPIO_Configuration(); // Configure the GPIO ports

TIM_TimeBaseStructure.TIM_Period = 0xFFFF;
TIM_TimeBaseStructure.TIM_Prescaler = 0x00;
TIM_TimeBaseStructure.TIM_ClockDivision =0x00;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); // Time base configuration
TIM_ETRClockMode2Config(TIM2, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0);
TIM_SetCounter(TIM2, 0);
TIM_Cmd(TIM2, ENABLE);
for(i=0;i<1000;i++)
{
n = TIM_GetCounter(TIM2);
Delay(10);
}
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表