#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条回答
liumin_txgt
1楼-- · 2019-07-22 23:27
FSMC Ax:用在LCD 显示RAM 和寄存器之间进行选择的地址线,即该线
用于选择LCD的RS 脚,该线可用地址线的任意一根线,范围:FSMC_A[25:0]。
注:RS = 0 时,表示读写寄存器;RS = 1 表示读写数据RAM。
举例 1:选择NOR 的第一个存储区,并且使用FSMC_A16 来控制LCD 的
RS 引脚,则我们访问LCD显示RAM 的基址为0x6002 0000,访问LCD寄存器
的地址为:0x6000 0000。
举例 2:选择NOR 的第四个存储区,使用FSMC_A0 控制LCD 的RS 脚,
则访问LCD显示RAM的基址为0x6000 0002,访问LCD寄存器的地址为:0x6000
0000。这个更好理解
szczyb1314
2楼-- · 2019-07-23 02:41
reg是u16的占2个字节   0x6C0007FE 和  0x6C0007FF
ram是u16的占2个字节   0x6C000800 和  0x6C000801
这个从“7“到”8”的跳变是控制一根地址线从0到1也就是RS
xzh5508
3楼-- · 2019-07-23 02:49
 精彩回答 2  元偷偷看……

一周热门 更多>