#define S6D0129_IR (*((volatile unsigned short *) 0x83200000))
volatile 表示 禁止编译器优化unsigned short * 的意思是定义一个2个字节的地址指针 连起来就是在0x82300000地址位置上输出一个2个字节长的数据。在0x82300000地址TFT的IR信号。
*(volatile unsigned short *)0x82300000 = 0x0;对应置0
unsigned int *aa; //定义一个指针变量
aa=0x54; //表示这个指针变量的值为0x54 类似的,*p可以这么用:p=0x52588;直接对地址赋值。
*aa=0x55; //表示对以aa的值为地址的值进行赋值,也就是内存中0x00000054里的值置为0x55;
*(unsigned int *)0x54=0x55 也是一样的道理
但是 (unsigned int *)0x54=0x55 是不行的,编译器会认为是类似 0x54=0x55的赋值,那当然会出错的
本文详细介绍了C语言中如何使用指针进行内存地址的访问及数据操作,特别是通过具体的例子展示了如何对特定内存地址进行读写操作,这对于理解硬件寄存器等底层操作非常有用。
328

被折叠的 条评论
为什么被折叠?



