hmillionaire 发表于 2014-10-18 22:32:02

c语言求教

#define GPIOA               ((GPIO_TypeDef *) GPIOA_BASE)
1.我知道GPIO_TypeDef是个结构体数据类型
2.1.我知道GPIOA是一个GPIO_TypeDef的变量
3.知道#define是叫做宏定义
这个宏定义语句看不懂
求大哥指教
 

xulay 发表于 2014-10-18 23:43:44

RE:c语言求教

GPIOA_BASE代表 GPIOA 组寄存器的基地址。
(GPIO_TypeDef *) 在这里的作用则是把 GPIOA_BASE 地址转换为
GPIO_TypeDef 结构体指针类型。
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;
有了这样的宏,以后我们写代码的时候,如果要修改GPIOA的寄存器,就可以用以下的方式来实现:
GPIOA->CRL = 0xffffffff;

霹雳之火 发表于 2014-10-19 10:02:03

RE:c语言求教

楼上回答很详细,展开就可以了
页: [1]
查看完整版本: c语言求教