好了,另一个参数自然也就明白了,是2字节的变量了。
再回到这个函数:
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
由于GPIO是个指针,GPIO_Pin为常量,所以
#define LED1_ON GPIO_SetBits(GPIOB, GPIO_Pin_5); 预编译之后相当于
GPIOB->BSRR = GPIO_Pin_5;就是把GPIOB的BSRR寄存器设置为0x0020,刚好 第五位置为1,由于是指针变量,所以用“->”直接取自定义结构体GPIOB 中的BSRR 变量的地址,然后赋值为GPIO_Pin_5,在stm32f10x_gpio.c中有这样的定义:
#define GPIO_Pin_5 ((uint16_t)0x0020)
|