1、硬件连接2、PWM通道可以看出,PC6对应的是TIMER2的CH0通道。3、实现方法通过调整占空比,使其
1、硬件连接
2、PWM通道
可以看出,PC6对应的是TIMER2的CH0通道。
3、实现方法
通过调整占空比,使其递增,LED逐渐变亮,从而在视觉上实现呼吸灯的效果。
4、核心代码
(1)PWM初始化
void PwmInit(void){ rcu_periph_clock_enable(RCU_GPIOC); /* TIMER1 GPIO */ gpio_mode_set(GPIOC, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_6 ); gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_6); gpio_af_set(GPIOC, GPIO_AF_1, GPIO_PIN_6); //64000000/6400=10k //TIMER2CLK = SystemCoreClock/6400 = 0.01MHz, the period is 1s(100/10000).=0.01s=10ms=100hz timer_oc_parameter_struct timer_ocinitpara; timer_parameter_struct timer_initpara; /* enable the peripherals clock */ rcu_periph_clock_enable(RCU_TIMER2); /* deinit a TIMER */ timer_deinit(TIMER2); /* initialize TIMER init parameter struct */ timer_struct_para_init(&timer_initpara); /* TIMER2 configuration */ timer_initpara.prescaler = 6399; timer_initpara.alignedmode = TIMER_COUNTER_EDGE; timer_initpara.counterdirection = TIMER_COUNTER_UP; timer_initpara.period = 99; timer_initpara.clockdivision = TIMER_CKDIV_DIV1; timer_init(TIMER2, &timer_initpara); /* initialize TIMER channel output parameter struct */ timer_channel_output_struct_para_init(&timer_ocinitpara); /* configure TIMER channel output function */ timer_ocinitpara.outputstate = TIMER_CCX_ENABLE; timer_ocinitpara.ocpolarity = TIMER_OC_POLARITY_HIGH; timer_channel_output_config(TIMER2, TIMER_CH_0, &timer_ocinitpara); timer_channel_output_pulse_value_config(TIMER2, TIMER_CH_0, 99); /* CH0 configuration in OC timing mode */ timer_channel_output_mode_config(TIMER2, TIMER_CH_0, TIMER_OC_MODE_PWM0); /* enable a TIMER */ timer_enable(TIMER2);}登录后复制
菜鸟下载发布此文仅为传递信息,不代表菜鸟下载认同其观点或证实其描述。
版权投诉请发邮件到 cn486com#outlook.com (把#改成@),我们会尽快处理
Copyright © 2019-2020 菜鸟下载(www.cn486.com).All Reserved | 备案号:湘ICP备2023003002号-8
本站资源均收集整理于互联网,其著作权归原作者所有,如有侵犯你的版权,请来信告知,我们将及时下架删除相应资源