OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4580|回复: 2

LCD结构体方面的问题!求大神指导!

[复制链接]

42

主题

173

帖子

0

精华

高级会员

Rank: 4

积分
549
金钱
549
注册时间
2013-6-18
在线时间
59 小时
发表于 2013-6-25 21:46:36 | 显示全部楼层 |阅读模式

//LCD地址结构体
typedef struct
{
 u16 LCD_REG;
 u16 LCD_RAM;
} LCD_TypeDef;
#define LCD_BASE        ((u32)(0x6C000000 | 0x000007FE))
#define LCD             ((LCD_TypeDef *) LCD_BASE)

这里定义了结构体但是没有定义结构变量啊!而
void LCD_WR_DATA(u16 data)
                
 LCD->LCD_RAM=data;   //这里直接使用了指针,我记得谭浩强的c语言书上指针首先要等于结构变量的首地址,比如  LCD=&ptr;(ptr为结构体的一个变量)才能使用这个指针,不然指针乱飞的!

}

本人c语言基本功不行啊,有没有指导一下的。
付:老谭教科书的一个例子,下面红字部分。

struct stu
{
int num;
char *name;
char sex;
float score;
} boy1={102,"Zhang ping",'M',78.5},*pstu;
main()
{
pstu=&boy1;

printf("Number=%d\nName=%s\n",pstu->num,pstu->name);
printf("Sex=%c\nScore=%f\n\n",pstu->sex,pstu->score);


 

只为摆正你的倒影,我倾倒了整个世界。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
发表于 2013-6-25 23:04:58 | 显示全部楼层
这个例子中:
struct stu
 {
 int num;
 char *name;
 char sex;
 float score;
 } boy1={102,"Zhang ping",'M',78.5},*pstu;
 main()
 {
pstu=&boy1;

 printf("Number=%d\nName=%s\n",pstu->num,pstu->name);
 printf("Sex=%c\nScore=%f\n\n",pstu->sex,pstu->score);
}

pstu是一个结构体指针变量,但是它没有初始化,只表明是指向该类型的结构体,而这句pstu=&boy1;就使得pstu指向了结构体变量boy1,也即在指针pstu里存放了boy1结构体的首地址。

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

其中 LCD 就是 ((LCD_TypeDef *) ((u32)(0x6C000000 | 0x000007FE)),它已经初始化了地址。
对应上面的可以这样理解:&boy1为((u32)(0x6C000000 | 0x000007FE))
永远保持一颗学习的心态。
回复 支持 1 反对 0

使用道具 举报

170

主题

917

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1824
金钱
1824
注册时间
2013-4-13
在线时间
63 小时
发表于 2013-6-25 22:39:16 | 显示全部楼层
结构体变量定义有3种方式,LCD_TypeDef就是结构体变量名
手艺人要内外兼修。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-18 10:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表