最近在SDK中遇到这么一句话
*(volatile int *)(XPAR_GPIO_1_BASEADDR)
指向该地址的内容
对LED的8bit GPIO口进行操作
#define LED_Reg *(volatile int *)(XPAR_GPIO_1_BASEADDR)
........
while(1)
{
displaynum++;
LED_Reg = displaynum;
myDelay(2000);
}
这样就实现流水灯操作
volatile它的作用是告诉编译器volatile变量是随时可能发生变化的,与volatile变量有关的运算,不要自作主张进行编译优化,以免出错,每次读取都从地址中获取。