我在网上买的的开发板,但是给我的光盘里没有相关教程的程序,就在论坛上下了一个针对GPIOA_Pin_6的,并根据理解修改。
买的开发板是B0\B1\B5接在三色灯上的那种。
1、将源程序的管脚修改为B0,红色为修改处。
GPIO_InitTypeDef GPIO_InitStructure;
/* GPIOA clock enable */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
2、修改TM3的通道,我查手册,B0口对应的是CH3。
TIM_OC3Init(TIM3, &TIM_OCInitStructure);
TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable);
3、然而修改后,程序并不能正常运行,于是修改初始脉冲
TIM_OCInitStructure.TIM_Pulse = 0;
下载后,基本上灯的亮度都是跟我修改的初始脉冲一致。但是论坛下的程序通过外接发光二极管是能正常运行的。有没有高手能指导一下,是不是这个程序我还有什么没理解到的地方。_____________________
不好意思,已解决,但是论坛里看了几个呼吸灯帖子都没提到。中断函数里TIM3有指针要修改一下。写出来吧,以免以后有我这样刚学单片机编程的新手再遇到,找了好久才找到问题。
TIM3->CCR3 = indexWave[pwm_index]; |