其他分享
首页 > 其他分享> > STM32CubeMx+HAL笔记(六)用GPIO控制LED灯的开发步骤

STM32CubeMx+HAL笔记(六)用GPIO控制LED灯的开发步骤

作者:互联网

背景:用GPIO点亮LED灯,PB0引脚控制。

一、寄存器编程三步走(以GPIO控制LED为例)

        1.了解总线矩阵

        2.了解时钟概念

        3.寻找对应寄存器编写代码

该方法适用于大部分单边机的外设开发,不过实现上面三点的关键在于单片机对应型号的参考手册。

二、总线矩阵

总线矩阵是内核与外设间交互的窗口。以stm32f103系列为例,Cortex-M3内核通过各种总线,经总线矩阵、AHP系统总线与外设建立联系。下图来自于该单片机的参考手册。

通过上图,可以看出GPIO是挂载在APB2总线上的。通过总线形式可以很好地将各种外设分离开,从而可以独立地控制各种外设的使能与否。 而控制外设使能就是控制这个外设的时钟。

三、时钟

控制该外设的时钟就可以使它使能。那么,我们需要知道该外设对应的时钟是哪一个?在参考手册里如何找到?

方法一:从上图可以看出,GPIO外设挂载在APB2总线上,只要使能APB2总线时钟,就可以使能该外设。

方法二:查看存储器映射,后面有其总线信息,如下图:

 四、GPIO开发

1、首先,使能GPIOB的外设时钟(找寄存器地址)

时钟外设RCC基地址:0x40021000
APB2偏移地址:0x18

APB2外设使能寄存器:基地址+偏移地址

 

        

2、然后,配置GPIOB端口

GPIOB外设基地址:0x40010c00

GPIOB_CRL偏移地址:0x00

GPIOB_ODR偏移地址:0x0c

 

 

标签:LED,APB2,总线,STM32CubeMx,地址,GPIO,HAL,外设,时钟
来源: https://blog.csdn.net/weixin_42638731/article/details/122309122