易智联LM401模块学习(二)——按键控制灯的反转

文章目录

  • 一、核心板,工具介绍
    • 1.1 核心板介绍
    • 1.2 编译开发工具
    • 1-2-1
    • 1-2-2
  • 二、怎样创建一个工程?工具如何使用?
    • 利用STM32cubeMX创建一个工程
    • 2.1 芯片选择
    • 2.2 gpio口设置(按键+灯)
    • 2.3 代码部分
    • 2.4编译,烧写
  • 总结

提示:以下内容仅供学习使用,如有雷同请联系作者修改

一、核心板,工具介绍

1.1 核心板介绍

易智联LM401-oro-kit(demo板),内嵌高性能 MCU STM32WLE5C*系列IC,适用于各种物联网节点设计,MCU采用ARM Cortex-M4内核,自带128K flash,48K SRAM,模块提供 UART、I2C、SPI、ADC 和GPIOs 等多种外设接口供我们选择,该模块的调制方式可以设置为Lora(默认)和FSK两种,其最大发射功率为22dBm。LM401模块的额定工作电压为1.8V至3.6V,内置32.768KHz晶振,采用30PinSMT封装,引脚定义如下:

易智联LM401模块学习(二)——按键控制灯的反转_第1张图片
易智联LM401模块学习(二)——按键控制灯的反转_第2张图片
其丰富的外设接口为用户二次开发提供了无限可能。

1.2 编译开发工具

在这里插入图片描述

1-2-1

uVision是KEIL公司开发的一个集成开发环境(IDE),和Eclipse类似。它包括工程管理,源代码编辑,编译设置,下载调试和模拟仿真等功能,uVision有uVision2、uVision3、uVision4、uVision5四个版本,目前最新的版本是uVision5。它提供一个环境,让开发者易于操作,并不提供能具体的编译和下载功能,需要软件开发者添加。uVisionu通用于KEIL的开发工具中,例如MDK,PK51,PK166,DK251等。

1-2-2

STM32CubeMX 可以直观的选择 STM32 微控制器、配置微控制器、自动处理引脚冲突、动态设置确定时钟树、动态确定参数设置的外围和中间件模式和初始化。STM32CubeMX 生成的代码可以在 KEIL、IAR、GCC 等编程软件上面使用。所以简单地说STM32CubeMX 本身就是一个工具软件,我们只要在上面通过图形化配置就可以生成STM32 功能代码工程,这个代码工程已经包括了必要的外设初始化程序,这样节省我们的工作量,把工作重点放在项目逻辑层、应用层的实现。

二、怎样创建一个工程?工具如何使用?

提示:一个简易的点灯实验简述工具使用过程

利用STM32cubeMX创建一个工程

2.1 芯片选择

易智联LM401模块学习(二)——按键控制灯的反转_第3张图片
易智联LM401模块学习(二)——按键控制灯的反转_第4张图片

2.2 gpio口设置(按键+灯)

易智联LM401模块学习(二)——按键控制灯的反转_第5张图片
根据PCB原理图确认LED,KEY与MCU引脚连接情况,上面也给了引脚定义可参照;

易智联LM401模块学习(二)——按键控制灯的反转_第6张图片
选择芯片PB3为输出(led3输入)![在这里插入图片描述](https://img-blog.csdnimg.cn/da26e59eca474ce9a27039e3e2ad406c.png#pic_center易智联LM401模块学习(二)——按键控制灯的反转_第7张图片

设置引脚为不上拉,不下拉,模式为推挽输出 ,其他保持不变

易智联LM401模块学习(二)——按键控制灯的反转_第8张图片
选择芯片PA0为输入,我们要检测案件信号(KEY)
易智联LM401模块学习(二)——按键控制灯的反转_第9张图片

设置引脚为浮空输入,名字随便起;

易智联LM401模块学习(二)——按键控制灯的反转_第10张图片
设置时钟源频率为48Hz,及msi值设置为48000,也可以用其他时钟源;
易智联LM401模块学习(二)——按键控制灯的反转_第11张图片
到此为止STM32cubemx会为我们准备好一切,利用寄存器映射,我们直接调用相应函数及可对寄存器进行操作;

2.3 代码部分

首先,我们可以在 stm32wlxx_hal_gpio.c中找到想关gpio函数的定义,并且知道如何去使用他们,我们可以找到这两个函数使用HAL_GPIO_ReadPin()获得配置为输入模式的引脚的电平。 (#) 要设置/重置配置为输出模式的引脚的电平,请使用HAL_GPIO_WritePin()/HAL_GPIO_TogglePin()。由于stmcubemx已经在main中帮我们封装好并初始化好了,所以我们只需要在while(1)中写相对应的操作就好。这里我选择HAL_GPIO_ReadPin()和HAL_GPIO_TogglePin()来实现按键控制一个led的反转;首先我们得知道这两个函数怎么用?直接进入stm32wlxx_hal_gpio.c中
在这里插入图片描述
这里函数中一共有两个参数,第一个指针类型表示个两个端口分组中的port及PA还是PB,第二个参数则表示是PB端口中的PB1,PB2,还是PB3。我们可以打开mian.h在其中看到我们之前在stmcubemx中定义好的gpio口,他都为我们封装好了;
在这里插入图片描述
到此我们就可以在main中操作一番了:
易智联LM401模块学习(二)——按键控制灯的反转_第12张图片

2.4编译,烧写

易智联LM401模块学习(二)——按键控制灯的反转_第13张图片

易智联LM401模块学习(二)——按键控制灯的反转_第14张图片

易智联LM401模块学习(二)——按键控制灯的反转_第15张图片

总结

到此为止一次简单的按键控制灯的反转就完成了。

参考
参考

你可能感兴趣的:(单片机,学习,stm32)