RobotHardware-UESTC/Hardware/Firmware/GeekRobotBig_Firmware v1.0/DRV/bsp_GPIO.h

50 lines
1.2 KiB
C

#ifndef __BSP_GPIO_H
#define __BSP_GPIO_H
#include "stm32f10x.h"
/** the macro definition to trigger the led on or off
* 1 - off
*0 - on
*/
#define ON 0
#define OFF 1
//配置LED1
#define LED1_CLK RCC_APB2Periph_GPIOC
#define LED1_PORT GPIOC
#define LED1_Pin GPIO_Pin_13
/* 带参宏,可以像内联函数一样使用 */
#define LED1(a) if (a) \
GPIO_SetBits(LED1_PORT,LED1_Pin);\
else \
GPIO_ResetBits(LED1_PORT,LED1_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(GPIOB,GPIO_Pin_0)
//#define LED1_OFF digitalHi(GPIOB,GPIO_Pin_0)
//#define LED1_ON digitalLo(GPIOB,GPIO_Pin_0)
//
//#define LED2_TOGGLE digitalToggle(GPIOF,GPIO_Pin_7)
//#define LED2_OFF digitalHi(GPIOF,GPIO_Pin_7)
//#define LED2_ON digitalLo(GPIOF,GPIO_Pin_7)
//
//#define LED3_TOGGLE digitalToggle(GPIOF,GPIO_Pin_8)
//#define LED3_OFF digitalHi(GPIOF,GPIO_Pin_8)
//#define LED3_ON digitalLo(GPIOF,GPIO_Pin_8)
void LED_GPIO_Config(void);
void LED_Flash(int timer);
#endif /* __LED_H */