打开主菜单

谷雨文档中心 β

更改

NBDK-L4:基础实验教程

添加1,606字节2019年1月17日 (四) 16:00
无编辑摘要
=== 硬件设计 ===
选择STM32L4引脚PA15作为LED的控制引脚,PA15高电平是点亮LED。
 
[[文件:NBDK-SCH-LED.png|居中]]
=== 实验验证 ===
下载完成后,可以看下开发板上的LED灯周期闪烁,点亮及熄灭周期时间为500ms。下载完成后,可以看到开发板上的LED灯周期闪烁,点亮及熄灭的周期时间为500ms。
=== 源码详解 ===
本节中的源码说明,仅针对此例程中的重要功能,详细的源码介绍请大家参照代码后的注释。
==== stm32l4xx_hal_conf.h ====
此文件位于“01-led实验\Inc”路径中,主要用途是选择使能此例程使用到的库文件,一般情况下,我们默认需要使用的为前5个,包含芯片、flash、电源、时钟以及NVIC。 此例程因为我们需要展示IO的使用,所以我们额外使能 HAL_GPIO_MODULE_ENABLED。<syntaxhighlight lang="c" line="1" start="103">
// 使能的宏
#define HAL_MODULE_ENABLED // 芯片
==== main.c ====
main函数,我们的例程由此处开始执行,首先调用HAL_Init()函数初始化我们的模块,接着调用SystemClock_Config()函数初始化此例程用到的时钟,具体有哪些时钟被初始化,在gyu_util.c部分有详细说明。 接下来我们初始化LED引脚配置,并且在while()循环中周期点亮、熄灭LED。<syntaxhighlight lang="c++" line="1" start="31">
int main(void)
{
SystemClock_Config();
// 初始化LED引脚 LED_Init();
//
==== gyu_util.c ====
时钟初始化函数,用于配置我们模块运行的系统时钟、AHB高性能总线时钟、APB外设总线时钟以及单个外设的时钟。 主要包含了三个部分的初始化配置。 1.内部或者外部振荡器选择,也就是选择时钟信号的来源,是内部振荡,还是外部晶振 2.时钟配置,选择系统、AHB总线及APB总线的时钟来源 3.外设时钟配置,选择外设时钟来源<syntaxhighlight lang="c++" line="1" start="49">
void SystemClock_Config(void)
{
==== gyu_led.c ====
此文件用于配置LED控制引脚,在LED_Init()函数中我们初始化PA15为推挽输出,并且使能GPIOA时钟,初始化PA15默认输出低电平<syntaxhighlight lang="c" line="1" start="31">
void LED_Init(void)
{
GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP; // 推挽输出
GPIO_InitStructure.Speed = GPIO_SPEED_FREQ_LOW; // 低频率
GPIO_InitStructure.Pull = GPIO_PULLUPGPIO_PULLDOWN; // 上拉下拉
HAL_GPIO_Init(GPIOA, &GPIO_InitStructure); // 初始化PA15
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET); // 设置PA15默认输出低电平
}
</syntaxhighlight>LED_SET()函数留给大家控制LED灯点亮或者熄灭,参数可选为GPIO_PIN_RESET(低电平)或者GPIO_PIN_SET(高电平)<syntaxhighlight lang="c" line="1" start="54">
void LED_SET(GPIO_PinState pinSate)
{
510
个编辑