我通过TIMER1输出四路PWM控制电机,通过TIMER2产生10ms定时器中断进行OLED菜单的 *** 作。
程序如下:
int main(void)
{
delay_init(); //延时函数初始化
//NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
//uart_init(115200); //串口与TIMER1撞车
TIM1_PWM_Init(7199,0); //越大越快
Motor_BIG(0,0);
Motor_Tiny(0);
TIM2_Int_Init(99,7199);
TIM3_PWM_Init(7199,0);
// Motor_Step(0,0);
LED_Init(); //初始化与LED连接的硬件接口
EXTIX_Init(); //外部中断初始化
KEY_Init();
OLED_Init();
OLED_Clear();
while(1)
{
TIM_SetCompare3(TIM1,6400);
}
}
现象是中断函数可以进入,也就是菜单可以正常被按键 *** 作,但是电机输出没有任何反应,PWM输出也无效。
经过几次修改,把定时器中断频率修改一下,即可完美解决。
目前不知道为什么。
修改如下。
TIM2_Int_Init(999,7199);
这是我在原子论坛发的帖子,有配置代码。
http://www.openedv.com/thread-334959-1-1.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)