#include "stm32f10x.h" // Device header #include "stdio.h" void LED_Init(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO_InitTypeDef GPIO_InitStruct; //初始化GPIO,定义GPIO结构体,以下设置其参数 GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//GPIO_Mode_Out_OD 开漏模式,低电平驱动,高电平时为高阻态;GPIO_Mode_Out_PP 推挽模式,高低电平都有驱动 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_All; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStruct); GPIO_SetBits(GPIOA,GPIO_Pin_1 | GPIO_Pin_2);//初始化LED后不点亮 } /*!< Pin x selected ON or OFF parameter opt is high or low;表示高低电平 */ enum V_opt{//高低电压 high, low }; /* 选择GPIOA外设进行LED控制 ,opt有 high 和 low */ //这个函数有点没用 void GPIOA_LED(uint16_t GPIO_Pin_x,enum V_opt opt) { if(opt == high) GPIO_SetBits(GPIOA,GPIO_Pin_x); if(opt == low) GPIO_ResetBits(GPIOA,GPIO_Pin_x); } /* 控制GPIOA灯泡亮灭 GPIO_Pin_x表示为哪个按键引脚,GPIO_Pin_LED表示为哪个灯泡引脚 */ void GPIOA_LED_Turn(uint16_t GPIO_Pin_x) { if(GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_x) == 0) GPIO_SetBits(GPIOA,GPIO_Pin_x); else GPIO_ResetBits(GPIOA,GPIO_Pin_x); }