美文网首页STM32
NUCLEO-L432KC实现GPIO控制(STM32L432K

NUCLEO-L432KC实现GPIO控制(STM32L432K

作者: 不脱发的程序猿 | 来源:发表于2021-12-31 18:46 被阅读0次

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、烧录程序

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

相关文章

  • NUCLEO-L432KC实现GPIO控制(STM32L432K

    1、实验目的 了解STM32L432KC LED灯外围电路搭建原理; 学习STM32CubeMX新建工程的方法; ...

  • android gpio口控制

    android gpio口控制  GPIO口控制方式是在jni层控制的方式实现高低电平输出,类似linux的控制句...

  • 树莓派3B+ 手机h5网页控制GPIO

    本文介绍如何在H5页面控制树莓派GPIO 仅实现以BCM编码方式控制GPIO,其他方式未做. 演示地址:http:...

  • Raspberry PI——GPIO

    在config.txt中GPIO的控制 gpio gpio指令允许GPIO引脚在引导时设置为特定模式和值,代替之前...

  • 【C】通过linux文件系统操作GPIO

    本文描述如果通过文件IO sysfs方式控制树莓派 GPIO端口。通过sysfs方式控制GPIO,先访问/sys/...

  • 什么是GPIO?有何作用?

    GPIO是通用型输入输出口的简称。通过对IO口高低电位来实现控制或数据传输。GPIO具有布局简单,封装便捷,成本低...

  • 9月13日

    上午老师讲解怎么通过片上寄存器去控制GPIO 实现灯的点亮 下午写作业实现三色的闪烁

  • Android GPIO 控制方案

    此方案实现Android APP控制CPU GPIO,支持设置IO方向、输出、输入、按键功能。 移植驱动与Fram...

  • 树莓派3B+ GPIO输入输出使用

    下图中的40个引脚就是 GPIO ,可以参考官方文档 python3 程序控制GPIO GPIO (General...

  • openwrt 命令行控制GPIO

    一、在openwrt文件系统中通过内核提供的接口操作GPIO 1、导出GPIO11目录 控制GPIO 1).cd ...

网友评论

    本文标题:NUCLEO-L432KC实现GPIO控制(STM32L432K

    本文链接:https://www.haomeiwen.com/subject/ptcnqrtx.html