程序是在上一个文章的基础上进行的添加与修改,可以实现流水灯的效果,但是此方法有些笨拙,可以使用位带操作来实现。
#include "stm32f10x.h"
#include "led.h"
void delay(u32 i)
{
while(i--);
}
#if 0
int main()
{
LED_Init();
while(1)
{
GPIO_ResetBits(LED_PORT,GPIO_Pin_0);
delay(0xfffff);
GPIO_SetBits(LED_PORT,GPIO_Pin_0);
delay(0xfffff);
}
}
#else
int main()
{
LED_Init();
while(1)
{
GPIO_ResetBits(LED_PORT,GPIO_Pin_0);
delay(0xfffff);
GPIO_SetBits(LED_PORT,GPIO_Pin_0);
delay(0xfffff);
GPIO_ResetBits(LED_PORT,GPIO_Pin_1);
delay(0xfffff);
GPIO_SetBits(LED_PORT,GPIO_Pin_1);
delay(0xfffff);
GPIO_ResetBits(LED_PORT,GPIO_Pin_2);
delay(0xfffff);
GPIO_SetBits(LED_PORT,GPIO_Pin_2);
delay(0xfffff);
GPIO_ResetBits(LED_PORT,GPIO_Pin_3);
delay(0xfffff);
GPIO_SetBits(LED_PORT,GPIO_Pin_3);
delay(0xfffff);
GPIO_ResetBits(LED_PORT,GPIO_Pin_4);
delay(0xfffff);
GPIO_SetBits(LED_PORT,GPIO_Pin_4);
delay(0xfffff);
GPIO_ResetBits(LED_PORT,GPIO_Pin_5);
delay(0xfffff);
GPIO_SetBits(LED_PORT,GPIO_Pin_5);
delay(0xfffff);
GPIO_ResetBits(LED_PORT,GPIO_Pin_6);
delay(0xfffff);
GPIO_SetBits(LED_PORT,GPIO_Pin_6);
delay(0xfffff);
GPIO_ResetBits(LED_PORT,GPIO_Pin_7);
delay(0xfffff);
GPIO_SetBits(LED_PORT,GPIO_Pin_7);
delay(0xfffff);
}
}
#endif