C++的语法问题
答案:3 悬赏:0 手机版
解决时间 2021-04-27 15:15
- 提问者网友:精神病院里
- 2021-04-27 03:48
C++的语法问题
最佳答案
- 五星知识达人网友:患得患失的劫
- 2021-04-27 05:21
typedef struct
{
vu16 LCD_REG;
vu16 LCD_RAM;
} LCD_TypeDef;是一个两个为vu16 数据类型的结构体
#define LCD_BASE ((u32)(0x60000000 | 0x0C000000))相当于
#define LCD_BASE ((u32)(0x6C000000 )
#define LCD ((LCD_TypeDef *) LCD_BASE)定义了一个对啊构本指针
等同于#define LCD ((LCD_TypeDef *) 0x6C000000)地址类型为一个LCD_TypeDef结构体
LCD->LCD_REG = LCD_Reg是对0x6C000000这个地址时的数据进行操作
LCD->LCD_RAM = LCD_RegValue是对0x6C000002这个地址时的数据进行操作
因为结构体定义的数据类型是vu16,对LCD->LCD_REG的操作与对LCD->LCD_RAM的操作相当于他们的地址偏移的16/8。
下面给出一段程序
#define GPIO_G (u32 )(0x40012000)
#define _BSRR 4*4
#define _BRR 5*4
#define _GPIOG_BSRR *(vu32*)(0x40012000 +_BSRR)
#define _GPIOG_BRR *(vu32*)(0x40012000 +_BRR)
void GPIO_Set_Bits( uint16_t GPIO_Pin)
{
// GPIOA->BSRR = GPIO_Pin;
_GPIOG_BSRR = GPIO_Pin;
}
void GPIO_Reset_Bits( uint16_t GPIO_Pin)
{
// GPIOG->BRR = GPIO_Pin;
_GPIOG_BRR = GPIO_Pin;
}
{
vu16 LCD_REG;
vu16 LCD_RAM;
} LCD_TypeDef;是一个两个为vu16 数据类型的结构体
#define LCD_BASE ((u32)(0x60000000 | 0x0C000000))相当于
#define LCD_BASE ((u32)(0x6C000000 )
#define LCD ((LCD_TypeDef *) LCD_BASE)定义了一个对啊构本指针
等同于#define LCD ((LCD_TypeDef *) 0x6C000000)地址类型为一个LCD_TypeDef结构体
LCD->LCD_REG = LCD_Reg是对0x6C000000这个地址时的数据进行操作
LCD->LCD_RAM = LCD_RegValue是对0x6C000002这个地址时的数据进行操作
因为结构体定义的数据类型是vu16,对LCD->LCD_REG的操作与对LCD->LCD_RAM的操作相当于他们的地址偏移的16/8。
下面给出一段程序
#define GPIO_G (u32 )(0x40012000)
#define _BSRR 4*4
#define _BRR 5*4
#define _GPIOG_BSRR *(vu32*)(0x40012000 +_BSRR)
#define _GPIOG_BRR *(vu32*)(0x40012000 +_BRR)
void GPIO_Set_Bits( uint16_t GPIO_Pin)
{
// GPIOA->BSRR = GPIO_Pin;
_GPIOG_BSRR = GPIO_Pin;
}
void GPIO_Reset_Bits( uint16_t GPIO_Pin)
{
// GPIOG->BRR = GPIO_Pin;
_GPIOG_BRR = GPIO_Pin;
}
全部回答
- 1楼网友:一把行者刀
- 2021-04-27 07:36
这个是要实现什么功能?有点费解啊
- 2楼网友:等灯
- 2021-04-27 06:59
#define 是宏定义 C语言为零可以不用看这了,刚学C是不用管这的。
typedef 是给类取个别名
struct 是块对象申明和定义
->是类或块的指针对象引用成员数据
typedef 是给类取个别名
struct 是块对象申明和定义
->是类或块的指针对象引用成员数据
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯