//stm32f10x_gpio.h 127行~142行
#define GPIO_Pin_0 ((uint16_t)0x0001) /*!< Pin 0 selected */
#define GPIO_Pin_1 ((uint16_t)0x0002) /*!< Pin 1 selected */
#define GPIO_Pin_2 ((uint16_t)0x0004) /*!< Pin 2 selected */
#define GPIO_Pin_3 ((uint16_t)0x0008) /*!< Pin 3 selected */
#define GPIO_Pin_4 ((uint16_t)0x0010) /*!< Pin 4 selected */
#define GPIO_Pin_5 ((uint16_t)0x0020) /*!< Pin 5 selected */
#define GPIO_Pin_6 ((uint16_t)0x0040) /*!< Pin 6 selected */
#define GPIO_Pin_7 ((uint16_t)0x0080) /*!< Pin 7 selected */
#define GPIO_Pin_8 ((uint16_t)0x0100) /*!< Pin 8 selected */
#define GPIO_Pin_9 ((uint16_t)0x0200) /*!< Pin 9 selected */
#define GPIO_Pin_10 ((uint16_t)0x0400) /*!< Pin 10 selected */
#define GPIO_Pin_11 ((uint16_t)0x0800) /*!< Pin 11 selected */
#define GPIO_Pin_12 ((uint16_t)0x1000) /*!< Pin 12 selected */
#define GPIO_Pin_13 ((uint16_t)0x2000) /*!< Pin 13 selected */
#define GPIO_Pin_14 ((uint16_t)0x4000) /*!< Pin 14 selected */
#define GPIO_Pin_15 ((uint16_t)0x8000) /*!< Pin 15 selected */
/*GPIO库函数开发和寄存器开发区别
函数原型为:void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
->箭头操作符要求左操作数必须是个指针GPIO_TypeDef* GPIOx,所以GPIOx是一个指向
GPIO_TypeDef结构体的指针*/
GPIO_SetBits(GPIOx,GPIO_Pin); //库函数开发
等价于
GPIOx->BSRR = GPIO_Pin; //寄存器开发
//BSRR寄存器高16位写1->清0,低16位写1->置1
GPIO_ResetBits(GPIOx,GPIO_Pin);
等价于
GPIOx->BRR = GPIO_Pin;
GPIO_SetBits(GPIOx,GPIO_Pin)
最新推荐文章于 2024-07-23 20:10:13 发布