C - 了解 UART 寄存器索引



下面的函数打印出UART寄存器的内容。这是寄存器映射。

UART寄存器

有人可以解释为什么 for 循环在+=4上升吗?

谢谢

#define UART0_BASE 0x21000
void print_uart(unsigned int base) {
int i;
int val;
unsigned int adr;
  for (i=0; i< 0x18; i+=4) {
    adr = base + i;
    printf("Uart %s [0x%x] -> 0x%xn",uart_reg[i>>2],adr,val);
  }
}

最有可能适合每个寄存器的起始地址。由于 for 循环运行高达 0x18(24(,因此它有 6 个寄存器。寄存器可能看起来只有 16 位,但通常也有一些填充。

最新更新