typedef struct{
__IO uint32_t CRL;
__IO uint32_t CRH;
__IO uint32_t IDR;
__IO uint32_t ODR;
__IO uint32_t BSRR;
__IO uint32_t BRR;
__IO uint32_t LCKR;
} GPIO_TypeDef;
#define GPIOF_BASE (APB2PERIPH_BASE + 0x1C00)//定义了一个偏移地址
#define GPIOF ((GPIO_TypeDef *) GPIOF_BASE)//请问这句是什么意思?
#define GPIO_LED GPIOF
typedef struct{
uint16_t GPIO_Pin;
GPIOSpeed_TypeDef GPIO_Speed;
GPIOMode_TypeDef GPIO_Mode;
}GPIO_InitTypeDef;
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_Init(GPIO_LED, &GPIO_InitStructure);
/*关于这两个实参,照下面的声明看第1个是一个指向GPIO_TypeDef结构的指针,那么具体到GPIO_LED也就是上面问的那句define是什么意思?第2个实参是把GPIO_InitTypeDef结构的变量GPIO_InitStructure的首地址传进去?*/
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
assert_param(IS_GPIO_MODE(GPIO_InitStruct->GPIO_Mode));
}
这个assert是什么意思?是说(GPIO_InitStruct->GPIO_Mode)只要为下面声明中的任一项就不终止程序往下执行?
#define IS_GPIO_MODE(MODE)
(((MODE) == GPIO_Mode_AIN) || ((MODE) == GPIO_Mode_IN_FLOATING) || \
((MODE) == GPIO_Mode_IPD) || ((MODE) == GPIO_Mode_IPU) || \
((MODE) == GPIO_Mode_Out_OD) || ((MODE) == GPIO_Mode_Out_PP) || \
((MODE) == GPIO_Mode_AF_OD) || ((MODE) == GPIO_Mode_AF_PP))
一只斗牛犬
婷婷同学_
繁星淼淼