chuxh 发表于 2022-10-9 21:59

对外部脉冲进行计数

请问有谁使用过使STM32F140对外部脉冲进行计数,帮忙说一下方法呗.。。。

zhenykun 发表于 2022-10-9 22:04

计数最好使用计数器这样比较简单呵呵   这是个人的一点意见

xxrs 发表于 2022-10-9 22:06

我看到有人使用timer-A的外部时钟输入脚测脉冲,但具体不会操作,不知道有谁使用过这个功能

zhenykun 发表于 2022-10-9 22:09

可以用定时器,输入设为外部输入就行了。

juventus9554 发表于 2022-10-9 22:13


P1SEL |= 0x01;      // P1.0TACLK input
TACTL = TASSEL_0 + MC_2 + TAIE +ID_0;// TACLK, contmode 开溢出中断

renyaq 发表于 2022-10-9 22:16

可以的 设置边沿检测 或者中断。

huangchui 发表于 2022-10-9 22:19

可以在中断函数里面进行计数。

tian111 发表于 2022-10-9 22:21

使用 timer-A ,timer-B 就是太费了,用了之后,就不能在干别的了。

chenho 发表于 2022-10-9 22:23

正点原子不是有写好的例程吗?可以参考啊

yszong 发表于 2022-10-9 22:26

有很多方法实现

dingy 发表于 2022-10-9 22:29

定时器、计数器、IO中断,都行

heweibig 发表于 2022-10-9 22:31

看脉冲频率了。

chuxh 发表于 2022-10-9 22:35

用io口中断就可以呀

chenho 发表于 2022-10-9 22:41

如果频率太快的话 io口是反应不过来的

juventus9554 发表于 2022-10-13 18:33

如果频率不高 就用io口的边沿触发就行 不过要防抖

木木guainv 发表于 2022-11-8 09:50

可以使用电平进行计数在这种方式下 要不停的轮询io口状态了

tpgf 发表于 2022-11-8 10:05

使用普通io口的高低电平的中断就可以达到计数的目的

磨砂 发表于 2022-11-8 10:18

使用定时器的外部捕捉模式就可以对脉冲进行计数

晓伍 发表于 2022-11-8 10:33

应该使用TIMX的ETR方式,我的理解每个定时器都有一路外部计数端口

八层楼 发表于 2022-11-8 11:08

TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //使用这一句时:使用系统时钟时 可以产生Update中断

TIM_ETRClockMode2Config(TIM2, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0); // 使用这一句时 :用etr做时钟 就没法中断

/* TIM2 configuration */
TIM_TimeBaseStructure.TIM_Period = 0xffee;   //   
TIM_TimeBaseStructure.TIM_Prescaler = 0x0000;      //分频系数(除数)
TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;   
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;    //计数模式
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x0000;    //计数周期 参见手册
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);



TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);

TIM_Cmd(TIM2, ENABLE);
页: [1] 2 3
查看完整版本: 对外部脉冲进行计数