一开始要使能时钟,把函数放在LED.c中
我们来看第一个入口的有效性定义:
我们要对GPIOB进行使能:
注: “assert_param是一个宏定义; 在固件库中,它的作用就是检测传递给函数的参数是否是有效的参数。
完成对GPIOB的使能:
GPIO_InitTypeDef GPIO_InitStructue;
GPIO_InitTypeDef是一个结构体类型同义字,其功能是定义一个结构体,该结构体有三个成员分别是u16类型的GPIO_Pin、GPIOSpeed_TypeDef 类型的GPIO_Speed和GPIOMode_TypeDef 类型的GPIO_Mode。在GPIO_Init (GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_InitStruct)里面调用,比如初始化pa口,就是GPIO_Init (GPIOA, &GPIO_InitStructure),括号里后面那个就是声明的结构体。
主函数代码:
#include "stm32f10x.h"
#include "LED.h"
#include "delay.h"
int main(void)
{
delay_init();
LED_Init();
while(1){
GPIO_SetBits(GPIOB,GPIO_Pin_5);//对PB5输出高电平
GPIO_SetBits(GPIOE,GPIO_Pin_5);
delay_ms(500);
GPIO_ResetBits(GPIOB,GPIO_Pin_5);//对PB5输出低电平
GPIO_ResetBits(GPIOE,GPIO_Pin_5);
delay_ms(500);
}