基于HAL库的LED流水灯

本文详细介绍了如何搭建STM32开发环境,包括安装JDK、STM32CubeMX及固件库,使用CubeMX创建项目并生成代码,以及在Keil中进行仿真调试和使用逻辑分析仪观察管脚时序。
摘要由CSDN通过智能技术生成

(一)搭建STM32开发环境

(1)安装jdk

由于STM32CubeMX是Java实现的,需要安装jdk环境。
jdk官网下载链接:
https://www.oracle.com/java/technologies/javase-downloads.html

(2)安装STM32CubeMX

1.下载地址:
https://www.st.com/en/development-tools/stm32cubemx.html
2.安装过程:

  1. 点击Get Software 下载安装包
    在这里插入图片描述

  2. 选择STM32CubeMX 的版本
    在这里插入图片描述

  3. 以管理员身份运行并安装 SetupSTM32CubeMX-6.8.0-Win.exe ,进入下面这个界面后,点击Next。
    在这里插入图片描述

  4. 点击"I accept the terms of this license agreement",接着选择Next。
    在这里插入图片描述
    在这里插入图片描述

  5. 选择Next
    在这里插入图片描述

  6. 点击Done就完成安装。
    在这里插入图片描述

(2)安装固件库

1.在ST官网获取stm32Cube包
在这里插入图片描述
在这里插入图片描述
2.运行CubeMX ,选择 Help->Magne 安装固件库
在这里插入图片描述
3.点击from local,找到刚才下载的固件库压缩包,再点击打开,这就完成了固件库的安装。
在这里插入图片描述

(二)使用CubeMX生成相关代码

(1)创建新项目,配置项目参数

1.新建File->Project
在这里插入图片描述
2.选择芯片STM32F103C8
在这里插入图片描述
3.选择.sys,将Debug调成Serial Wire
在这里插入图片描述
4.RCC选择
在这里插入图片描述
5.选择端口输出设置,选择需要的端口,点击设置GPIO_OUTPUT,我选择的是PA0,PA1,PA2
在这里插入图片描述
6.Clock Configuration设置
在这里插入图片描述
7.Project Manager设置
在这里插入图片描述
在这里插入图片描述
最后点击右上角的GENERATE CODE 就创建完成了,找到创建项目的文件夹,找到.uvprojx文件并打开。

(2)在keil中进行仿真调试

1.打开LED.uvprojx 文件
在这里插入图片描述
2.将下列代码插入到main函数的while循环中

    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET);  // 灯1亮
	HAL_Delay(1000); // 延时1s
	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);  // 灯1灭
	  
	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET);  // 灯2亮
	HAL_Delay(1000); // 延时1s
	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET);  // 灯2灭
	  
	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_RESET);  // 灯3亮
	HAL_Delay(1000); // 延时1s
	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_SET);  // 灯3灭

3.点击编译,生成hex文件。
在这里插入图片描述
4.连接电路如图所示
在这里插入图片描述
5.将生成的hex文件通过FlyMcu软件烧写到最小系统板上
在这里插入图片描述
6.查看运行结果

VID_20231020_204722

(三)使用仿真逻辑分析仪功能观察管脚的时序波形

1.点击魔法棒,配置debug
在这里插入图片描述
2.点击debug调试运行
在这里插入图片描述
3.点击setup,设置端口PA0、PA1、PA2的地址,设置Dispaly Type 为Bit
在这里插入图片描述
4.查看仿真结果
在这里插入图片描述
5.总结
由结果可以得出,PA0(蓝色)为低电平时(亮灯)时其他两个口的电平都为高电平。PA0、PA1、PA2分别为蓝色,黑色、红色,时序状态正确,高低电平转换周期(LED闪烁周期)实际为多少1秒。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值