第4章STM32开发基础知识精读.pptVIP

  • 28
  • 0
  • 约 79页
  • 2016-11-26 发布于湖北
  • 举报
下面我们再跟《 STM32 中文参考手册 V10》比较一下看看 GPIOA 的基地址是不是0截图 P28 存储器映射表我们可以看到, GPIOA 的起始地址也就是基地址确实是 0 上面我们已经知道 GPIOA 的基地址,那么那些 GPIOA 的 7 个寄存器的地址又是怎么算出来的呢??在上面我们讲过 GPIOA 的各个寄存器对于 GPIOA 基地址的偏移地址,所以我们自然可以算出来每个寄存器的地址。 GPIOA 的寄存器的地址=GPIOA 基地址+寄存器相对 GPIOA 基地址的偏移值 这个偏移值在上面的寄存器地址映像表中可以查到。 结构体存储的成员他们的地址是连续的。上面讲到 GPIOA 是指向GPIO_TypeDef 类型的指针,又由于 GPIO_TypeDef 是结构体,所以我们就可以算出 GPIOA 指向的结构体成员变量对应地址了。 这就是为什么固件库里面: GPIOA-BRR=value;就是设置地址为 00x014(BRR 偏移量)=0的寄存器 BRR 的值了。它和 51 里面 P0=value 是设置地址为 0x80 的 P0 寄存器的值是一样的道理。 MDK 固件库快速组织代码技巧 现在我们要初始化某个 GPIO 端口,我们要怎样快速操作呢?在头文件 stm32f10x_gpio

文档评论(0)

1亿VIP精品文档

相关文档