1、定时器外部计数功能 问:STM32处理器的定时器可以配置为对外部脉冲计数方式,其中一种方式是通过TIM的ETR引脚(外部触发引脚),另外一种方式是通过TIM的CH1或者CH2引脚来输入。现在我不明白这两种方式有什么区别,两种方式都能对外部脉冲计数,那么设置外部触发方式的目的指什么? 答:根据设计电路来使用不同的方法,他们最大的区别就是引脚不同,但是实现的功能是一样的。 2、TIM2用于捕获,如何调整TIM2的时钟? 问:TIM2用于捕获,如何调整TIM2的时钟?想调低 TIM2 的时钟频率,以减小计数器的值,避免溢出。 答:可在中断函数里修改配置。不过我想知道你的具体目的是什么 答:因被捕获脉冲频率很宽,有时较低,计数值过大,会超出0xFFFF。 3、关于捕获边沿的问题 问:STM32 的输入捕获能在上升沿和下降沿都进行捕获吗?还是要么上升沿,要么下降沿?PWM 输入模式除外,占用通道太多 答:是的。还有一种是只要有边沿就可以触发。 4、捕获比较寄存器捕获的值和计数器的值有什么区别? 问:捕获比较寄存器捕获的值和计数器的值有什么区别? 答:个人觉得可以这么理解,计数器的值在定时器输入时钟的驱动下不断增加,当外部信号满足捕获条件时,捕获控制中心会将此时计数器的数值拷贝到捕获比较寄存器,实质就是记录捕获事件发生的时间。 5、请教 一个STM8 定时器TIM1 PWM 输出的问题(TIM1 ARR被异常赋0) 问:各位高手,最近遇到一个STM8 PWM输出的怪问题, 我在初始化里配置TIM1 为PWM 输出模式, 输出的脉冲是用来供给步进电机细分驱动器的,每次TIM1更新中断时重新对ARR,CCR 赋初值。 但是系统经常是过一段时间,ARR就变成0了,查了好久也不知道是什么原因造成的,请大家帮忙看一下,下面是初始化程序 ,和中断处理程序(程序:https://www.stmcu.org.cn/wall/index.php?act=read&id=4446) 答:ArrLastI-ArrLastI3 要使用绝对值,还有不要在中断例程里定义变量。 unsigned int waittabletemp; unsigned int ccrtemp; 6、关于stm32定时器TI1异或连接方式的理解 问:stm32在控制无刷直流电机的时候,霍尔传感器是以异或方式连接的,那么在捕捉的时候,捕捉到的极性应如何设置,捕捉到的是相邻的两个变化沿的时间间隔吗,求大侠解释 答:已上升沿或者下降沿作为基准,可以使用TIM比较功能。 7、stm32的计时器,到底同时计数的可以有多少路? 问:我需要对外部的30路信号进行同时计数,请问stm32可以多少IO口 答:如果你要用30路计数的话 我倒不推荐部用计数器去做 因为STM32只有2-4路计数器。STM32所有的IO管脚都可以作为中断口使用、那你完全可以把所有信号接入到IO上 在外部中断处理程序中去做计数功能,当然不清楚你检测的是什么信号,频率不是特别高的话 理论上是没有问题的 |
thanks |