text: #ifndef __LED_H
  #define	__LED_H
  
  
  #include "stm32f10x.h"
  
  
  /* 定义LED连接的GPIO端口, 用户只需要修改下面的代码即可改变控制的LED引脚 */
  // R-红色
  #define LED1_GPIO_PORT    	GPIOB			              /* GPIO端口 */
  #define LED1_GPIO_CLK 	    RCC_APB2Periph_GPIOB		/* GPIO端口时钟 */
  #define LED1_GPIO_PIN		GPIO_Pin_5			        /* 连接到SCL时钟线的GPIO */
  
  // G-绿色
  #define LED2_GPIO_PORT    	GPIOB			              /* GPIO端口 */
  #define LED2_GPIO_CLK 	    RCC_APB2Periph_GPIOB		/* GPIO端口时钟 */
  #define LED2_GPIO_PIN		GPIO_Pin_0			        /* 连接到SCL时钟线的GPIO */
  
  // B-蓝色
  #define LED3_GPIO_PORT    	GPIOB			              /* GPIO端口 */
  #define LED3_GPIO_CLK 	    RCC_APB2Periph_GPIOB		/* GPIO端口时钟 */
  #define LED3_GPIO_PIN		GPIO_Pin_1			        /* 连接到SCL时钟线的GPIO */
  
  
  /** the macro definition to trigger the led on or off 
    * 1 - off
    *0 - on
    */
  #define ON  0
  #define OFF 1
  
  /* 使用标准的固件库控制IO*/
  #define LED1(a)	if (a)	\
  					GPIO_SetBits(LED1_GPIO_PORT,LED1_GPIO_PIN);\
  					else		\
  					GPIO_ResetBits(LED1_GPIO_PORT,LED1_GPIO_PIN)
  
  #define LED2(a)	if (a)	\
  					GPIO_SetBits(LED2_GPIO_PORT,LED2_GPIO_PIN);\
  					else		\
  					GPIO_ResetBits(LED2_GPIO_PORT,LED2_GPIO_PIN)
  
  #define LED3(a)	if (a)	\
  					GPIO_SetBits(LED3_GPIO_PORT,LED3_GPIO_PIN);\
  					else		\
  					GPIO_ResetBits(LED3_GPIO_PORT,LED3_GPIO_PIN)
  
  
  /* 直接操作寄存器的方法控制IO */
  #define	digitalHi(p,i)		 {p->BSRR=i;}	 //输出为高电平		
  #define digitalLo(p,i)		 {p->BRR=i;}	 //输出低电平
  #define digitalToggle(p,i) {p->ODR ^=i;} //输出反转状态
  
  
  /* 定义控制IO的宏 */
  #define LED1_TOGGLE		 digitalToggle(LED1_GPIO_PORT,LED1_GPIO_PIN)
  #define LED1_OFF		   digitalHi(LED1_GPIO_PORT,LED1_GPIO_PIN)
  #define LED1_ON			   digitalLo(LED1_GPIO_PORT,LED1_GPIO_PIN)
  
  #define LED2_TOGGLE		 digitalToggle(LED2_GPIO_PORT,LED2_GPIO_PIN)
  #define LED2_OFF		   digitalHi(LED2_GPIO_PORT,LED2_GPIO_PIN)
  #define LED2_ON			   digitalLo(LED2_GPIO_PORT,LED2_GPIO_PIN)
  
  #define LED3_TOGGLE		 digitalToggle(LED3_GPIO_PORT,LED3_GPIO_PIN)
  #define LED3_OFF		   digitalHi(LED3_GPIO_PORT,LED3_GPIO_PIN)
  #define LED3_ON			   digitalLo(LED3_GPIO_PORT,LED3_GPIO_PIN)
  
  /* 基本混色，后面高级用法使用PWM可混出全彩颜色,且效果更好 */
  
  //红
  #define LED_RED  \
  					LED1_ON;\
  					LED2_OFF\
  					LED3_OFF
  
  //绿
  #define LED_GREEN		\
  					LED1_OFF;\
  					LED2_ON\
  					LED3_OFF
  
  //蓝
  #define LED_BLUE	\
  					LED1_OFF;\
  					LED2_OFF\
  					LED3_ON
  
  					
  //黄(红+绿)					
  #define LED_YELLOW	\
  					LED1_ON;\
  					LED2_ON\
  					LED3_OFF
  //紫(红+蓝)
  #define LED_PURPLE	\
  					LED1_ON;\
  					LED2_OFF\
  					LED3_ON
  
  //青(绿+蓝)
  #define LED_CYAN \
  					LED1_OFF;\
  					LED2_ON\
  					LED3_ON
  					
  //白(红+绿+蓝)
  #define LED_WHITE	\
  					LED1_ON;\
  					LED2_ON\
  					LED3_ON
  					
  //黑(全部关闭)
  #define LED_RGBOFF	\
  					LED1_OFF;\
  					LED2_OFF\
  					LED3_OFF
  
  void LED_GPIO_Config(void);
  
  #endif /* __LED_H */
  