今天学习简单控制开发板的LED灯。
开发板实物图如下:
开发板原理图如下
代码如下:
#include "stm32f4xx.h"
void delay(int n)
{
int m ;
while(n--)
{
for( m = 40000;m>0;m--);
}
}
int main(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);//打开控制GPIO的开关
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_OType = GPIO_OType_OD;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz ;
GPIO_Init(GPIOF, &GPIO_InitStruct);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_OType = GPIO_OType_OD;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz ;
GPIO_Init(GPIOF, &GPIO_InitStruct);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_OType = GPIO_OType_OD;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz ;
GPIO_Init(GPIOE, &GPIO_InitStruct);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_OType = GPIO_OType_OD;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_14;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz ;
// GPIO_Init(GPIOE, &GPIO_InitStruct);
while(1)
{
//同时亮灭
GPIO_ResetBits(GPIOF, GPIO_Pin_9);//设置低电平,控制灯亮
delay(500);
GPIO_SetBits(GPIOF, GPIO_Pin_9);//设置高电平,控制灯灭
delay(500);
GPIO_ResetBits(GPIOF, GPIO_Pin_10);
delay(500);
GPIO_SetBits(GPIOF, GPIO_Pin_10);
delay(500);
GPIO_ResetBits(GPIOE, GPIO_Pin_13);
delay(500);
GPIO_SetBits(GPIOE, GPIO_Pin_13);
delay(500);
GPIO_ResetBits(GPIOE, GPIO_Pin_14);
delay(500);
GPIO_SetBits(GPIOE, GPIO_Pin_14);
delay(500);
//两两闪烁
/*
GPIO_ResetBits(GPIOF, GPIO_Pin_9);
GPIO_ResetBits(GPIOE, GPIO_Pin_13);
GPIO_SetBits(GPIOF, GPIO_Pin_10);
GPIO_SetBits(GPIOE, GPIO_Pin_14);
delay(500);
GPIO_ResetBits(GPIOF, GPIO_Pin_10);
GPIO_ResetBits(GPIOE, GPIO_Pin_14);
GPIO_SetBits(GPIOF, GPIO_Pin_9);
GPIO_SetBits(GPIOE, GPIO_Pin_13);
delay(500);
*/
//一亮三灭
/*
GPIO_ResetBits(GPIOF, GPIO_Pin_9);
GPIO_SetBits(GPIOF, GPIO_Pin_10);
GPIO_SetBits(GPIOE, GPIO_Pin_13);
GPIO_SetBits(GPIOE, GPIO_Pin_14);
delay(500);
GPIO_ResetBits(GPIOF, GPIO_Pin_10);
GPIO_SetBits(GPIOF, GPIO_Pin_9);
GPIO_SetBits(GPIOE, GPIO_Pin_13);
GPIO_SetBits(GPIOE, GPIO_Pin_14);
delay(500);
GPIO_ResetBits(GPIOE, GPIO_Pin_13);
GPIO_SetBits(GPIOF, GPIO_Pin_9);
GPIO_SetBits(GPIOF, GPIO_Pin_10);
GPIO_SetBits(GPIOE, GPIO_Pin_14);
delay(500);
GPIO_ResetBits(GPIOE, GPIO_Pin_14);
GPIO_SetBits(GPIOF, GPIO_Pin_9);
GPIO_SetBits(GPIOF, GPIO_Pin_10);
GPIO_SetBits(GPIOE, GPIO_Pin_13);delay(500);
*/
//3亮1灭
/*
GPIO_ResetBits(GPIOF, GPIO_Pin_10);
GPIO_ResetBits(GPIOE, GPIO_Pin_13);
GPIO_ResetBits(GPIOE, GPIO_Pin_14);
GPIO_SetBits(GPIOF, GPIO_Pin_9);
delay(500);
GPIO_ResetBits(GPIOF, GPIO_Pin_10);
GPIO_ResetBits(GPIOE, GPIO_Pin_13);
GPIO_ResetBits(GPIOE, GPIO_Pin_14);
GPIO_SetBits(GPIOF, GPIO_Pin_10);
delay(500);
GPIO_ResetBits(GPIOF, GPIO_Pin_9);
GPIO_ResetBits(GPIOF, GPIO_Pin_10);
GPIO_ResetBits(GPIOE, GPIO_Pin_14);
GPIO_SetBits(GPIOE, GPIO_Pin_13);
delay(500);
GPIO_ResetBits(GPIOF, GPIO_Pin_9);
GPIO_ResetBits(GPIOF, GPIO_Pin_10);
GPIO_ResetBits(GPIOE, GPIO_Pin_13);
GPIO_SetBits(GPIOE, GPIO_Pin_14);
delay(500);
*/
}
}