中级会员
 
- 积分
- 213
- 金钱
- 213
- 注册时间
- 2012-8-24
- 在线时间
- 0 小时
|
有几个小问题,
一、STM32的PWM输出最高能产生多高频率的方波?
我产生的波形频率在1M左右还行,到了9M的波形就不再是方波了,下降沿一点都不陡,介于锯齿波和正弦波之间了。
这算是正常情况吗?大家整过多高频率的?我本想弄10M的方波作为我要使用的基准信号呢。
二、如何把定时器配置成计数器模式?比如用来在某段时间内数我产生的方波的个数。
是不是要把时钟源选择“外部时钟源模式1”呢?我从tim.c里找到配置方法,但是第4个参数不懂配置。也不懂它是干嘛用的。
void TIM_ETRClockMode1Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity,uint16_t ExtTRGFilter)
{
uint16_t tmpsmcr = 0;
/* Check the parameters */
assert_param(IS_TIM_LIST3_PERIPH(TIMx));
assert_param(IS_TIM_EXT_PRESCALER(TIM_ExtTRGPrescaler));
assert_param(IS_TIM_EXT_POLARITY(TIM_ExtTRGPolarity));
assert_param(IS_TIM_EXT_FILTER(ExtTRGFilter));
/* Configure the ETR Clock source */
TIM_ETRConfig(TIMx, TIM_ExtTRGPrescaler, TIM_ExtTRGPolarity, ExtTRGFilter);
/* Get the TIMx SMCR register value */
tmpsmcr = TIMx->SMCR;
/* Reset the SMS Bits */
tmpsmcr &= (uint16_t)(~((uint16_t)TIM_SMCR_SMS));
/* Select the External clock mode1 */
tmpsmcr |= TIM_SlaveMode_External1;
/* Select the Trigger selection : ETRF */
tmpsmcr &= (uint16_t)(~((uint16_t)TIM_SMCR_TS));
tmpsmcr |= TIM_TS_ETRF;
/* Write to TIMx SMCR */
TIMx->SMCR = tmpsmcr;
}
还有后面那些标记蓝色的代码是干嘛用的呀?
谢谢了! |
|