NUCLEO-L432KC实现GPIO控制(STM32L432KC)

举报
不脱发的程序猿 发表于 2021/01/01 22:23:05 2021/01/01
【摘要】 目录 1、实验目的 2、实验设计 3、实验步骤 3.1、使用 STM32CubeMX 新建项目工程 3.2、编写LED闪烁代码 3.3、配置烧写参数 3.4、烧录程序 1、实验目的 了解STM32L432KC  LED灯外围电路搭建原理;学习STM32CubeMX新建工程的方法;掌握STM32编程实现LED闪烁的编程技巧。 2、实验设计 分析STM32L...

目录

1、实验目的

2、实验设计

3、实验步骤

3.1、使用 STM32CubeMX 新建项目工程

3.2、编写LED闪烁代码

3.3、配置烧写参数

3.4、烧录程序


1、实验目的

  • 了解STM32L432KC  LED灯外围电路搭建原理;
  • 学习STM32CubeMX新建工程的方法;
  • 掌握STM32编程实现LED闪烁的编程技巧。

2、实验设计

  • 分析STM32L432KC  LED灯原理图可知,LED灯连接在PB3引脚;
  • 通过配置PB3引脚,结合驱动函数HAL_GPIO_TogglePin()和HAL_GPIO_WritePin(),可使用两种方式实现LED灯闪烁。

3、实验步骤

3.1、使用 STM32CubeMX 新建项目工程

使用STM32CubeMX 新建项目工程,具体步骤可参见STM32控制LED灯闪烁(NB-IoT项目实战专栏—4),本博文将基于STM32L432KC处理器,简要讲解新建项目工程步骤。

第1步:选择MCU STM32L432KC,创建STM32CubeMX项目工程。

第2步: 配置STM32L432KC的晶振,由上图原理图可知,STM32L432KC处理器只有外部低速晶振接于PC14和PC15引脚,将这两个GPIO配置为“Crystal/Ceramic Resonator”模式。

晶振配置通常有两种模式:BYPASS Clock Source(旁路时钟源)和Crystal/Ceramic Resonator(晶体/陶瓷晶振),区别如下:

  • BYPASS Clock Source(旁路时钟源):是指无需使用外部晶体时所需的芯片内部时钟驱动组件,直接从外界导入时钟信号。犹如芯片内部的驱动组件被旁路了。
  • Crystal/Ceramic Resonator(晶体/陶瓷晶振):该时钟源是由外部无源晶体与MCU内部时钟驱动电路共同配合形成,有一定的启动时间,精度较高。

 第3步:配置LED灯的GPIO,将PB3引脚配置“GPIO_Output”输出模式。配置初始化参数:推挽输出、默认输出低电平(初始化不让 LED 灯亮)、无上拉无下拉。

 第4步:配置时钟。按照自己的工程要求配置时钟,本次以自动设置为例,直接将最后的频率设置为 80MHz(确定后电机回车),STM32CubeMX 会自动设置。 

 第5步:配置生成代码的一些配置。在 Project 界面设置本工程名称,选择按照什么开发工具生成项目工程,这里我们使用的是 MDK5。

 在这个界面中还需要配置的是 Code Generator,这一栏中将“Generate peripheral initialization as a……”选中,这样生成的工程会把使用的资源(IIC、SPI、USART、GPIO 等)初始化代码分别放在对应名字的单独的.c 文件中,方便我们自己增删改查使用。

第6步:点击上面的 OK 生成工程代码。 生成工程代码成功后,可以选择打开工程目录或者直接打开工程。

选择打开工程目录。可以看到工程目录分为两个部分,一个是 MDK5 的工程目录,一个是 STM32CubeMX 的工程。STM32CubeMX 工程文件还可以用 STM32CubeMX 打开提供增加或者删除、修改本工程,非常方便。

3.2、编写LED闪烁代码

关于工程文件的介绍、基本GPIO驱动函数的查找等基础知识,本篇博文中不再赘述,感兴趣的小伙伴可参考学习STM32控制LED灯闪烁(NB-IoT项目实战专栏—4)

第1步: 在stm32l4xx_hal_def.h文件中查找到所需的驱动函数:HAL_GPIO_TogglePin()和HAL_GPIO_WritePin,在stm32l4xx_hal.h文件中查找到所需的延时函数:HAL_Delay()。 

第2步 :了解函数的基本使用。

void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)函数的功能是将某个引脚输出方波,函数各个参数说明如下:

void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)函数的功能是设置拉高还是拉低某个引脚,函数各个参数说明如下: 

__weak void HAL_Delay(uint32_t Delay)函数的功能是延时单位毫秒,函数各个参数说明如下:

第3步:编写代码,实现每隔2秒LED灯亮、闪烁。

第4步:编译程序,确保无误。

3.3、配置烧写参数

NUCLEO-L432KC模块内嵌STLINK/V2-1烧写器,配置烧写参数,设置使用 ST-LINK 下载,设置好下图参数,点击下载程序。

3.4、烧录程序

最后烧录程序,查看效果。

本项目STM32CubeMX工程及代码网址见:https://download.csdn.net/download/m0_38106923/11237880 

文章来源: handsome-man.blog.csdn.net,作者:不脱发的程序猿,版权归原作者所有,如需转载,请联系作者。

原文链接:handsome-man.blog.csdn.net/article/details/91493450

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。