stm32开发板实现简易流水灯

硬件:指南者开发板

软件:Keil4

提示:以下内容仅适用初学者,欢迎大佬指点。

一、GPIO初始化

 #include "stm32f10x_gpio.h"
 #include "stm32f10x_rcc.h"
 void GPIO_Config(void)
 {
        GPIO_InitTypeDef GPIO_InitStruct;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
        
        GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
        GPIO_InitStruct.GPIO_Pin=GPIO_Pin_1;
        GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOB,&GPIO_InitStruct);
	    GPIO_SetBits(GPIOB,GPIO_Pin_1);
       //这里端口初始化后默认是低电平,手动置高电平,防止LED提前点亮
        
        GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
        GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;
        GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOB,&GPIO_InitStruct);
	    GPIO_SetBits(GPIOB,GPIO_Pin_0);

        GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
        GPIO_InitStruct.GPIO_Pin=GPIO_Pin_5;
        GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOB,&GPIO_InitStruct);
	    GPIO_SetBits(GPIOB,GPIO_Pin_5);
}

二、延时函数

void delay_ms(int i)
{
  int x;
  for(x=0;x<i;x++);

}

三、主函数

int main(void){
   GPIO_Config();

	 while(1)
    {
        GPIO_ResetBits(GPIOB,GPIO_Pin_0);
        delay_ms(5000);
        GPIO_SetBits(GPIOB,GPIO_Pin_0);
        GPIO_ResetBits(GPIOB,GPIO_Pin_1);
        delay_ms(5000);
        GPIO_SetBits(GPIOB,GPIO_Pin_1);
        GPIO_ResetBits(GPIOB,GPIO_Pin_5);
        delay_ms(5000);
        GPIO_SetBits(GPIOB,GPIO_Pin_5);
    }

}

四、小结

以上代码可以实现一个简易的流水灯,可以观察到开发板PB0(绿灯),PB1(蓝灯),PB5(红灯)循环点亮,具体的循环时长可以通过修改延时函数参量来实现。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值