逮着ST的定时器研究了几天,竟然发现ST的定时器不支持单通道的上升沿和下降沿同时捕捉,要同时捕捉还要占用2个通道,更可恶的是还要占用2个IO引脚!超级极郁闷!正交编码计数器都支持了,这点小东西不支持,各位有没有不占2个IO的更好的办法呀?
不一定要2个IO
配置一下TIMx_CCMRx的CCxS位
可以实现把ICx映射到别的引脚上
具体可以参考用户手册(Rev6)的寄存器相关说明和图73
讨论
配置TIMx_CCMRx的CCxS位是可以映射到其他引脚上,例如IC1可以映射到TI1或TI2上,好像不能同时映射到TI1和TI2
mcu2051可以介绍一下那种MCU支持升沿和下降沿同时捕捉?
你说的上升沿和下降沿,本来就有前后循序! 有可能是 “同时”吗?
什么叫【同时】?
要同时,就必须要两个 寄存器来保存 TC值,要同时,必须要两个通道【当然要两个引脚!】
如果只有一个捕获寄存器,最好是用DMA来把数据传输到安全地方,否则被后面的覆盖!
真是的!
LZ 真是的,还有面说“逮着ST的定时器研究了几天,”
都不知道LZ 是如何看书的!^_^!跟大家开国际玩笑!
“PWM输入模式
该模式是输入捕获模式的一个特例,除下列区别外,工作过程与输入捕获模式相
同:
● 两个ICx 信号被映射同一个TIx 输入。
● 这2 个ICx 信号为边沿有效,但是极性相反。
● 其中一个TIxFP 信号被作为触发输入信号,并且从模式控制器被配置成复
位模式。”
芯片内有通道,不需两个I/O
请看下图的通道标记。
回复
不好意思,发帖时说错了,应该把“同时”去掉,我的问题是“ST的定时器是否支持单通道的上升沿和下降沿捕捉”,想用一个IO实现上升沿和下降沿捕捉。请问香水城:IC1能同时连接TI1FP1和TI2FP1吗?我在TIMx_CCMRx的寄存器中没找到怎么设置CCxS位?
回复5楼
5楼所说的PWM输入模式我看了,它实质上是在上升沿(或下降沿)复位计数器的计数值,在下降沿(或上升沿)进行捕捉,并非真正的两次捕捉。
请看RM0008 275页中的表95
6楼贴了这个图,但不知21IC今天为什么所有图都丢了。
别人俩比较器管一管脚,而STM反其道行之
难怪它一个计数周期里产不出对称的两相PWM脉冲,弄 6 step 3相PWM倒是专家
蒸钱会 和 mcu2051 两个都是大笨蛋!
这两位兄弟 在跟大家 开国际玩笑! ^_^!
TIxFPy,(x>2),在哪,怎么应用?
对照TI1FP2和TI1FP1的PWM输入捕捉例子,移植到其它的就是没反应
请看这张图中的红线或蓝线部分,这是STM32手册中TIMx的框图
对啊,TI3FP3,TI3FP4,TI2FP1,TI2FP2,TI4FP3,TI4FP4,没找到啊
TIMx_CCMR2寄存器
这是RM0008第322页的内容,请对照13楼的图看,其它的与此相似:
我的意识是在提供的库里没有看见这个定义,只有1的定义
请楼上看看TIM_ICInit()函数的参数和说明
手册里都有的内容你为什么总是说没有?
呵呵,我全文搜索没发现.
/* TIM Internal Trigger Selection ------------------------------------------*/
#define TIM_TS_ITR0 ((u16)0x0000)
#define TIM_TS_ITR1 ((u16)0x0010)
#define TIM_TS_ITR2 ((u16)0x0020)
#define TIM_TS_ITR3 ((u16)0x0030)
#define TIM_TS_TI1F_ED ((u16)0x0040)
#define TIM_TS_TI1FP1 ((u16)0x0050)
#define TIM_TS_TI2FP2 ((u16)0x0060)
#define TIM_TS_ETRF ((u16)0x0070)