注:非高
请高手详细讲一下以下GPIOA的含义,我是新手。
#ifdef _GPIOA
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE) //这句GPIOA含义?
请搜:GPIO_TypeDef----是一个结构,这句是定义了N个连续的寄存器的地址------连续是因为结构的原因
-------------你看了GPIO_TypeDef后,会发现,这其实是定义了N个连续的uint32_t的地址 (u32)
#else /* DEBUG */
#ifdef _GPIOA
EXT GPIO_TypeDef *GPIOA; //这句GPIOA含义?
你得看下EXT是不是extern的别名..
应该是声明GPIOA已经在别的文件里定义了
#endif /*_GPIOA */
void GPIO_DeInit(GPIO_TypeDef* GPIOx)
{
switch (*(u32*)&GPIOx) //这句(*(u32*)&GPIOx含义?
//这个个人不太懂少见,拆: &先取GPIOx的地址值,即取地址变量的地址
// u32*是强制转拒换为地址---防错.
// (u32*)前面的*取变量的值,即:DATASHEET里的0xXXXXXX,----又即结构的第//一个变量地址
//我一般用:GPIOA->XXX ----X为结构的一个变量-
{
case GPIOA_BASE: |