本帖最后由 frank_1019 于 2014-3-22 10:29 编辑
刚学习了手册的TIMx部分,有几个关于时钟模式的问题,想请教一下:
1、外部时钟模式1:使用的时候,必须用捕获来获取TIMx_CHy作为TIx的上升沿;
必须对SMS[2:0]进行设置,选用外部时钟模式1,即设置为“111”;
TS[2:0]也需要设置,可选值为:100/101/110;
2、外部时钟模式2:不需要配置为从模式,输入的ETR依旧是TIMx_CHy的一种;
关键的设置为ETP和ECE,ETP用来设置触发的边沿,ECE用于使能计数,
一旦使能了ECE,只要TIMx_CHy输出的信号为ETP所设置的触发边沿,就计数+1;
Q1:需要设置TS[2:0]=111,即外部触发输入吗?(参考手册上没有此步)
Q2:ETR还是TIMx_CHy的一种吗?如果是,怎么配置对应的信号连接?
上面哪里叙述有误,请各位前辈or学友圈点一下。
4>我采用内部触发的门控模式,来控制输出指定个数的PWM波:
方案:采用TIM3_CH3,作为主模式;其输出的OCxREF高低电平来门控TIM4从模式,来计数TIM3产生的PWM个数
①初始化GPIOB.0(TIM3_CH3),配置TIM3的时基模式,并配置TIM3_CH3的PWM输出;//只配置,不是能计数
②中断服务TIM3_TRQHandler中,检查是否有中断,并清除
这里:中断服务函数是自动进入的吗??? 为什么在stm32f10x_it.c里面没有TIMx的中断服务函数???
③TIM4的时基配置,(能否不进行输出配置???)
TIM_OCInitStructure.TIM_Pulse=**;//这个参数是对CCRx进行赋值吗??
从图139可见,每次主定时器电平变化时,TIM4_SR中的TIF位都会变为高电平,
因此选择每次TIF=1时,进行计数num++;并且清除TIF位;
这里:每次TIF=1.触发器中断等待响应,是否会在此处进入 TIM4_TRQHandler ???
④进行主从模式的配置
配置TIM3为主模式:MMS=110;//将OC3REF作为触发输出
配置TIM4为从模式:TS=010;//内部触发2; 门控模式SMS=101;
使能TIM3和TIM4计数
⑤TIM4中断服务函数:
判断TIF是否为1(这句写法??? if (TIM_GetITStatus(TIM4, TIM_IT_CC3) != RESET) )
TIM_IT_Trigger和 TIM_IT_CC3 这个地方分不清,请哪位前辈解释一下???
num++;CNT清0(防止溢出)
设指定输出的PWM波为x个,则计数到num=2*x关闭TIM3的CEN位。
另:如果我想用寄存器来读取TIMx_SR中的TIF(bit6),判断其是否为1,请问怎么写? |