LED的初始化
LED初始化流程(也适用于其他引脚的初始化操作)
|
使能相应时钟(为什么一开始先使能时钟,在前面GPIO基础知识中有讲解)
|
初始化IO口的配置(对哪个IO口进行操作,输入/输出模式,输入/输出速度)
|
初始化IO口的状态(设置一开始的相应引脚电平)
|
跑马灯实验调用函数的顺序(根据上述流程图确定)
|
使能IO口时钟。调用函数RCC_APB2PeriphColckCmd()(不同的IO组,调用的时钟使能函数不一样)
|
初始化IO口模式。调用函数GPIO_Init()
|
操作IO口,输出高低电平(主要调用函数:GPIO_SetBits();GPIO_ResetBits())
|
相应功能引脚的确定
插上一句:这里的IO引脚可以输出低电平/高电平,那就说明这个引脚采用的输出方式为“推挽输出模式”。
确保在文件中添加了相应库文件
这两个文件是STM32开发板的启动文件,可以启动你添加进其中的所有库文件。只注意就行,正点原子给你的template(库函数版本)中已经添加进入这两个文件,只会用就基本上OK了。
先建立LED硬件初始化文件并添加进项目工程中
在创建好的文件中编写初始化LED硬件的程序
Led.h文件
led.c文件
函数参实设置小技巧
第一步:返回函数定义的位置
第二步:寻找参数的定义形式
找到参数的合法定义格式
编写main函数
注:先初始化在进行引脚的操作
函数介绍
外围设备时钟使能函数 “RCC_APB2PeriphClockCmd”
函数原型
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)
|
函数名称的由来
RCC
| (Reset Clock Controller)复位与时钟控制器
|
APB
| (Advanced Peripheral Bus)高性能外围设备总线
|
Periph
| Peripheral的缩写,意为外部设备
|
Cmd
| Command的缩写
|
注:APB与AHB的不同之处
AHB,是Advanced High performance Bus的缩写,译作高级高性能总线,这是一种“系统总线”。
AHB主要用于高性能模块 (如CPU、DMA和DSP等)之间的连接。AHB 系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。
APB是Advanced Peripheral Bus的缩写,这是一种外围总线。
APB主要用于低带宽的周边外设之间的连接,例如UART、1284等,它的总线架构不像 AHB支持多个主模块,在APB里面唯一的主模块就是APB 桥。
这两者都是总线,符合AMBA规范。
引脚状态设置函数GPIO_Init
函数原型
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
|
函数名称的由来
GPIO
| (general-purpose IO pin)意为通用IO引脚
|
Init
| (initial)初始化
|
引脚电平设置函数GPIO_SetBits&GPIO_ResetBits
函数原型
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
|
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
|
函数的作用
GPIO_SetBits
| 将引脚电平置1
|
GPIO_ResetBits
| 将引脚电平置0
|
两个函数的实质
举报