STM32
直播中

刘埃生

7年用户 1709经验值
私信 关注
[问答]

STM32跑马灯配置流程是怎样的?

STM32跑马灯配置流程是怎样的?

回帖(1)

王建

2021-11-23 10:15:22
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
两个函数的实质










举报

更多回帖

发帖
×
20
完善资料,
赚取积分