这就完了? 当然不是!
再来看一下这张图:
上面有些 AHP ,APB2,是什么呢?
我们就要结合这张图了。
这儿可以看到 GPIO 、 ADC (这些称之为外设)等等外设是挂载到 APB1、 APB2、AHB上面的,在 STM32 中,要使用这些外设,我们就必须将这些总线的时钟打开(因为默认是关闭,所以需要手动打开。)。 这儿的操作与上面操作 GPIOB 操作一样,找到时钟( RCC )的基地址,再找到寄存器地址,通过操作寄存器的方法来是使APB2 (因为我们操作的是 GPIOB ,而 GPIOB 是挂载在 APB2 上面的)的 RCC 打开。 然后我们的 GPIOB就可以正常使用了。 #define RCC_BASE 0x40021000 //RCC的基地址。
#define RCC_APB2END *(unsigned int*)(RCC_BASE + 0x18) //RCC的使能寄存器地址。
RCC_APB2END |= (1 << 3) //由数据手册来看第三位是使能GPIOB的时钟。
好了,今天的分享就说完了,不过,这儿,只是从原理分析了 STM32 的 IO 的操作,对于固件库还有 HAL 库的讲解以后会分享,使用库可以更加容易的理解和使用 STM32 ! 谢谢大家的耐心观看,代码之路任重道远,愿与大家努力习之!
|