//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);
|