4.接下来怎么办?stm32f10x_tim.c文件中中搜索“ TIMx->SC ”,找到对应的函数。 void TIM_PrescalerConfig(TIM_TypeDef* TIMx, uint16_t rescaler, uint16_t TIM_PSCReloadMode) { /* Check the parameters */ assert_param(IS_TIM_ALL_PERIPH(TIMx)); assert_param(IS_TIM_PRESCALER_RELOAD(TIM_PSCReloadMode)); /* Set the rescaler value */ TIMx->SC = rescaler; /* Set or reset the UG Bit */ TIMx->EGR = TIM_PSCReloadMode; }
2.我告诉你是,改变PSC,看初始化代码:
TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值
TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位
这里面要改变TIM_Prescaler。
3.怎么改变?进入TIM_TimeBaseInit函数(stm32f10x_tim.c文件中),搜索TIM_Prescaler,找到寄存器是要改变:TIMx->
TIMx->
4.接下来怎么办?stm32f10x_tim.c文件中中搜索“ TIMx->
void TIM_PrescalerConfig(TIM_TypeDef* TIMx, uint16_t 
{
/* Check the parameters */
assert_param(IS_TIM_ALL_PERIPH(TIMx));
assert_param(IS_TIM_PRESCALER_RELOAD(TIM_PSCReloadMode));
/* Set the 
TIMx->
/* Set or reset the UG Bit */
TIMx->EGR = TIM_PSCReloadMode;
}
5.这就是改变PSC的函数,可以看出,同时要改变 TIMx->EGR。。。。
6.所以,再你要改变的地方调用这个函数即可。。。
那你请人帮你做就是了,简单的很,说你要什么效果,出什么价,价格合适,我相信大把人愿意做。
频率受2个参数控制,PSC和ARR,要改变频率,无非就是改这两个东西。
谢谢谢谢
一周热门 更多>