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