STM32实现呼吸灯

具体目标

利用延时函数模拟PWM输出,变占空比实现呼吸灯

源码

#define DeyTim  5000
void LED()
{
    int i=1;
    GPIO_InitTypeDef GPIO_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE |RCC_APB2Periph_GPIOB, ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOE, &GPIO_InitStructure);


    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

    while(1)
    {       
        for(i=0;i<DeyTim;i+=10)
        {
        GPIO_WriteBit(GPIOE, GPIO_Pin_2, Bit_SET);
        GPIO_WriteBit(GPIOE, GPIO_Pin_3, Bit_RESET);
        delay_us(i);
        GPIO_WriteBit(GPIOE, GPIO_Pin_2, Bit_RESET);
        GPIO_WriteBit(GPIOE, GPIO_Pin_3, Bit_SET);
        delay_us(DeyTim-i);     //此处注意一定要是 DeyTim - i 而不能是DeyTim 保证灯亮灭时间之和保持不变 从而实现变占空比
        }


    }
}
阅读更多
文章标签: STM32 呼吸灯
个人分类: STM32
上一篇QT 项目在其他计算机无法正常打开
下一篇三轮全向底盘运动学性能分析
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭