#define LCD ((LCD_TypeDef *) LCD_BASE) 这是强制类型转换吗?

2019-07-21 05:11发布

typedef struct { u16 LCD_REG; u16 LCD_RAM; } LCD_TypeDef;      #define LCD_BASE        ((u32)(0x6C000000 | 0x000007FE)) #define LCD             ((LCD_TypeDef *) LCD_BASE)  

请问下红 {MOD}标示:是将LCD_BASE强制类型转换后再定义给LCD 吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
菜鸟鸡哥
1楼-- · 2019-07-21 10:24
 精彩回答 2  元偷偷看……
ST-FAE-SALE
2楼-- · 2019-07-21 10:39
可以这样理解
小Y
3楼-- · 2019-07-21 16:12
回复【2楼】菜鸟鸡哥:
---------------------------------
你好,那么这样的话对应过去,LCD_REG 和LCD_RAM各是多少?C语言基础有点差劲~这是我的定义:16位的。我用的是A1---PF1     NE4
#define LCD_BASE        ((uint32_t)(0x60000002 | 0x0C000000)) #define LCD             ((LCD_TypeDef *) LCD_BASE) 按我的计算的话应该是LCD_RAM =0x6c00 0004,         LCD_RAM= 0x6c000000+2^n*2   数据长度是16bit
不知道我这样的计算对不对!
不管对不对吧, ((uint32_t)(0x60000002 | 0x0C000000))这样的话对应过去是多少?怎么对应?
正点原子
4楼-- · 2019-07-21 20:04
回复【4楼】正点电子01:
---------------------------------
按你的做法.
&LCD->REG=0x6c00 0002
&LCD->RAM=0x6c00 0004
小Y
5楼-- · 2019-07-21 22:46
回复【5楼】正点原子:
---------------------------------
原子哥,我现在会计算LCD->RAM的地址了,但是这个LCD->REG的地址不知道怎么出来的~
正点原子
6楼-- · 2019-07-21 23:35
 精彩回答 2  元偷偷看……

一周热门 更多>