jjg809898461 发表于 2013-11-26 14:10

初学stm32外部计数模式,请指教

最近两天在做外部计数,用的芯片stm32f107,希望采集100K~500K频率,之前没做过,网上好多例子只有部分代码没有说明,很郁闷。话不多说,这个程序总是不能出来数据。使用PA.0引脚来采集,用串口2,PA02 PA03输出信息,不知道哪里错了,希望大神能指正,最好能详细点,感激不尽
int main(void)
{
u16 i_Loop;
int n=0;

       
RCC_Configuration();// System Clocks Configuration

        NVIC_Configuration();// NVIC configuration

        GPIO_Configuration();// Configure the GPIO ports

        USART1_Config();
       
        Tim2_config();

while (1)
       {
                  for(i_Loop = 0; i_Loop < 100; i_Loop ++)
{
        n = IC2Value;
GPIO_SetBits(GPIOB, GPIO_Pin_0);
Delay(10);
GPIO_ResetBits(GPIOB, GPIO_Pin_0);
Delay(10);
printf(" %d \n",n);
               
               
}
                       
   }

}

void Tim2_config(void)
{
        TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;
//--------------设置------------------------

    TIM_DeInit(TIM2);
    // Time base configuration
    TIM_TimeBaseStructure.TIM_Period = 0xFFFF;
    TIM_TimeBaseStructure.TIM_Prescaler = 0x00;
    TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
          //TIM_TimeBaseStructure.TIM_channel = TIM_Channel_1;
    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);

}

jjg809898461 发表于 2013-11-26 17:09

自己顶一下

ayb_ice 发表于 2013-11-27 17:04

不停计数,然后定时读出数据
相减,算出频率

airwill 发表于 2013-11-28 00:03

这么高的频率, 用 ETR 外部触发吧, 一定时间后, 根据计数值计算出输入频率.

jjg809898461 发表于 2013-11-30 11:18

ayb_ice 发表于 2013-11-27 17:04 static/image/common/back.gif
不停计数,然后定时读出数据
相减,算出频率

是否tim2下,外部计数,中断输入捕获 二者不能同时使用是吧?

jjg809898461 发表于 2013-11-30 11:19

airwill 发表于 2013-11-28 00:03 static/image/common/back.gif
这么高的频率, 用 ETR 外部触发吧, 一定时间后, 根据计数值计算出输入频率.

是否tim2下,外部计数,中断输入捕获 二者不能同时使用是么?

jjg809898461 发表于 2013-11-30 11:19

不知道分该给谁啊

airwill 发表于 2013-12-1 09:26

tim2下,外部计数,中断输入捕获 二者不能同时使用是么?

是的, 外部计数,中断输入捕获, 由于算法不一样, 只能用其中一个

jjg809898461 发表于 2013-12-1 11:40

airwill 发表于 2013-12-1 09:26 static/image/common/back.gif
tim2下,外部计数,中断输入捕获 二者不能同时使用是么?

是的, 外部计数,中断输入捕获, 由于算法不一样, ...

谢了,问题我已经解决了,但是输入捕获部分居然差一个数,比如应该是1000却出现999,应该是7000却输出7007,分给你 了

晓月穿越 发表于 2015-6-18 10:54

您好,我也在学习STM32的计数器,用于编码器信号采集,串口输出,可是输出一直为零,能把你改好的程序发给我看看吗,拜托了。410459824@qq.com

jjg809898461 发表于 2015-7-1 11:27

晓月穿越 发表于 2015-6-18 10:54
您好,我也在学习STM32的计数器,用于编码器信号采集,串口输出,可是输出一直为零,能把你改好的程序发给 ...

不好意思一直在忙,你现在解决了吗

晓月穿越 发表于 2015-7-30 10:39

jjg809898461 发表于 2015-7-1 11:27
不好意思一直在忙,你现在解决了吗

还没呢~
页: [1]
查看完整版本: 初学stm32外部计数模式,请指教