想着用定时器中断来实现LED灯闪烁,LED灯对应的引脚是PA1,当我把PA1设置为GPIO output 时,LED灯可以闪烁,但是当我将PA1复用为TIM2_CH2时,LED能亮,但是却不能闪烁,这是为什么呢?即当图2中的GPIO_InitStruct.Mode = GPIO_MODE_AF_PP时,LED不能实现闪烁,当改为GPIO_MODE_OUTPUT_PP后,LED可以闪烁(图2中,LED1_PIN为GPIO_PIN_1)
那为什么当使用PWM实现呼吸灯时,PA1复用为TIM2_CH2后能实现呼吸的效果呢?
当你将PA1复用为TIM2_CH2时,它成为了一个定时器的通道引脚。在这种情况下,TIM2_CH2被用于PWM输出,控制LED的亮度。当你使用PWM实现呼吸灯效果时,定时器会生成一个周期性的PWM信号,通过改变占空比来控制LED的亮度变化,从而实现呼吸灯效果。
而当你将GPIO_InitStruct.Mode设置为GPIO_MODE_AF_PP时,PA1被配置为复用功能,并与定时器相关联。在这种情况下,TIM2_CH2引脚的输出功能由定时器控制,不再由GPIO控制。因此,无法直接通过改变GPIO引脚的输出状态来实现LED闪烁。
如果你想让LED闪烁而不使用PWM,你可以考虑使用定时器的中断功能来实现。