先说TIM_ARRPreloadConfig设置为DISABLE 和ENABLE的问题,他的作用只是允许或禁止在定时器工作时向ARR的缓冲器中写入新值,以便在更新事件发生时载入覆盖以前的值。在开始初始化的时候你已经把" TIM_TimeBaseStructure.TIM_Period=2000; //ARR的值 ",后来也一直是这个值,原因是你没有编写中断服务函数或者你在中断服务函数中根本就没有给ARR缓冲器重新写入新值,所以设置为DISABLE 和ENABLE都没有影响。
再说一下TIM_TimeBaseStructure.TIM_Prescaler=0还是9的问题,这个很简单,程序后面调用了TIM_PrescalerConfig(TIM2,35999,TIM_PSCReloadMode_Immediate);这个函数把之前的值给修改了,你可以把这个函数注释掉然后再改前面的值,或者直接改后面的那个35999,应该就不一样了。这两个地方都是给PSR寄存器写入值,为什么后面多此一举又专门调用函数
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |