基于STM32G431嵌入式学习笔记——一、LED模块入门

news/2024/6/3 19:30:12 标签: stm32, 单片机, 学习, 嵌入式硬件, 蓝桥杯

本章思维导图

一、使用CubeMX创建工程

1.新建环境

请添加图片描述

2.找到我们想要的芯片

请添加图片描述

我们选择的芯片型号为STM32G431RBT6,可以从产品手册中查询(比赛可以使用)

请添加图片描述

3.配置时钟

比赛时对配置内部还是外部时钟没有强制要求,因此建议使用配置内置时钟:
请添加图片描述

4.引脚配置

我们想要知道需要使用哪些引脚,则需要查询电路图或产品手册。LED指示灯的电路图在产品手册的7.4:
请添加图片描述

用到了PD2、PC8-15,且均为输出值存在的引脚,因此配置时均选择GPIO_Output,如下图所示

请添加图片描述

最后配置状况如下图所示:

请添加图片描述

单击左侧的GPIO,按照下图提示打开窗口
请添加图片描述

在这里需要学习关于LED灯的先验知识

请添加图片描述

图中的VDD是电源正极(高电平),如果想要LED初始状态为灯灭即不通电,则需要将PC8-15也处于高电平【因为通电需要有电势差的存在】,因此PC8-15均配置成High。
学习应该将PD2初始置高还是置低,需要学习74HC153锁存器的知识:

请添加图片描述

LED电路图里的接口20(VDD)和接口11(PD2)对应着锁存器的OE和LE,VDD为High因此~OE为High即OE为Low,想要让LED灯保持灭的状态始终不变,则需要LE置Low,即PD2置Low。因此配置结果如下:

请添加图片描述

5.编辑基本项目信息

请添加图片描述

请添加图片描述

然后单击右上角的generate code,生成初始代码。

二、KEIL相关内容

1.编译初始环境

请添加图片描述请添加图片描述

2.配置下载环境

单击快捷菜单中的魔术棒按钮
请添加图片描述

请添加图片描述

请添加图片描述

单击Setting后会弹出新的菜单栏,我们需要做的就是检查是否有图中标记③的这一行描述,如果没有则单击下方Add按钮,添加STM32G系列的项目描述;有则不需要额外添加(额外添加反而会下载失败)

请添加图片描述
请添加图片描述

3.LED灯实验——学会点亮LED
(1)书写LED函数

请添加图片描述

HAL_GPIO_TogglePin( )函数的作用是切换到某一个引脚,其定义存在于stm32g4xx_hal_gpio.c文件中:

请添加图片描述

我们在实验中使用的函数都不需要死记硬背其名字,仅需要熟悉这个函数在哪个文件中,之后查阅使用即可。

HAL_GPIO_WritePin( )函数的作用是在某引脚中写入信息(电平),其定义也存在于stm32g4xx_hal_gpio.c文件中:

请添加图片描述

HAL_Delay( )函数顾名思义起到延时作用,定义存在于stm32g4xx_hal.c文件中:

请添加图片描述

关于为什么我们要切换到这个引脚,为什么要使那个引脚写入信息,我们仍需要查阅产品手册中的LED电路图:

请添加图片描述

第二盏灯对应的引脚为PC9,因此HAL_GPIO_TogglePin( )函数里面的两个参量分别为GPIOC、GPIO_PIN_9;控制亮灭的LE对应的引脚为PD2,因此HAL_GPIO_WritePin( )函数里的前两个参量为GPIOD、GPIO_PIN_2,第三个参量函数定义里提示了我们有两个选择(GPIO_PIN_SET和GPIO_PIN_RESET)前者为1后者为0。

(2)在gpio.h中添加函数声明

请添加图片描述

(3)在主函数中调用该函数

请添加图片描述

(4)编译并下载

请添加图片描述

请添加图片描述
上图仅为参考demo,若全程按照上述步骤完成,则应该为LED2与LED3交替闪烁。


http://www.niftyadmin.cn/n/1325354.html

相关文章

TensorFlow中文文档学习之MNIST进阶版

from tensorflow.examples.tutorials.mnist import input_data import tensorflow as tf #截断正态分布在均值附近 def weight_variable(shape): initialtf.truncated_normal(shape,stddev0.1) return tf.Variable(initial) def bias_variable(shape): initialtf.con…

yolov3编译的时候遇到问题:OpenCV 4.x+ requires enabled C++11 support

在yolov3中的Makefile中,设置OpenCV1,然后编译的时候遇到了这个问题 error "OpenCV 4.x requires enabled C11 support 解决办法是安装opencv3.4.0,不要安装最新版的opencv4.x,下载链接是:https://opencv.org/o…

基于STM32G431嵌入式学习笔记——二、LCD模块入门

一、LCD模块相关文件的导入 1.找到官方例程参考程序存放代码的路径 2.将与LCD有关的头文件复制到自己代码路径下的Inc中 而自己的头文件和代码文件位于路径中的Core文件夹中 forts.h为与字体相关的头文件;lcd.h则与LCD屏幕有关 3.将与LCD有关的.c文件复制到自己代…

Ubuntu16.4安装并配置OpenCV

在图像处理中,经常需要用到OpenCV,Ubuntu系统中装OpenCV编译过程中,报了很多错,最常见的就是这种 Makefile:160: recipe for target all failed make: *** [all] Error 试了很多方法,都没有解决问题&#xff…

《TensorFlow深度学习应用实践》学习笔记之TFRecords文件的创建和读取

TFRecords是TensorFlow专用的数据文件格式。其中包含tf.train.Example协议内存块(protocol buffer),这是包含特征值和数据内容的一种数据格式。通过tf.python.io.TFRecordWriter类,可以获取相应的数据并将其填入到Example协议内存…

tensorflow模型并压缩

下载最新的TensorFlow库 git clone https://github.com/tensorflow/tensorflow.git 编译压缩模块 cd tensorflow bazel build tensorflow/tools/graph_transforms:transform_graph 压缩命令 bazel-bin/tensorflow/tools/graph_transforms/transform_graph --in_graph…

Pytorch中backward函数

backward函数是反向求导数,使用链式法则求导,如果对非标量y求导,函数需要额外指定grad_tensors,grad_tensors的shape必须和y的相同。 import torch from torch.autograd import Variable xVariable(torch.Tensor([16]),re…

ubuntu16.04中tensorflow转换为tflite模型的方式

压缩模型需要从源代码编译,需要安装bazel 官网的安装方式:https://docs.bazel.build/versions/master/install-ubuntu.html 这里采用Installing using binary installer方式,即使用sh文件安装 sudo apt-get install pkg-config zip g zl…