PRELOADER

不念过去 不负现在 不畏将来

当前文章 : 《STM32 流水灯续集》

12/4/2018 —— 

流水灯续集

这里写出三种不同的代码,均可是实现流水灯的效果。

代码展示

  • 1、最简单的方式,直接输出
void led_display1()
{
    while(1){
        GPIO_Write(GPIOC,0xfe);
        delay(6000000);
        GPIO_Write(GPIOC,0xfd);
        delay(6000000);
        GPIO_Write(GPIOC,0xfb);
        delay(6000000);
        GPIO_Write(GPIOC,0xf7);
        delay(6000000);
        GPIO_Write(GPIOC,0xef);
        delay(6000000);
        GPIO_Write(GPIOC,0xdf);
        delay(6000000);
        GPIO_Write(GPIOC,0xbf);
        delay(6000000);
        GPIO_Write(GPIOC,0x7f);
        delay(6000000);
    }
}

  • 2、通过每次移动不同的位数
void led_display2()
{
    int i = 0;
    while(1){
        for(i = 0;i<8;i++){
                GPIO_Write(GPIOC,~(0x01<<i));
                delay(6000000);
        }
    }
}

  • 3、每次都只移动一位,但是采用或0x01实现将每次移位自动补充的0变成1。这种方式和之前的每次移位后加1的操作本质上是相同的。
void led_display()
{
    int i = 0xfe;
    int j = 8;
    while(j){
            GPIO_Write(GPIOC,i);
            delay(6000000);
            i = i << 1;
            i = i | 0x01;
            j--;
        }
}