使用STM32CubeMX实现流水灯



一、安装STM32CubeMX

安装JDK: JDK下载

下载STM32CubeMX: STM32CubeMX下载


1. 下载并安装

点击Get Software:
在这里插入图片描述

根据自己的操作系统选择:
在这里插入图片描述

一步步Next,输入邮箱点击下载后,可在邮件中下载:
在这里插入图片描述

双击安装包后,Next:
在这里插入图片描述


Next:
在这里插入图片描述


勾选第一个,Next
在这里插入图片描述


选择安装路径(不能有中文),NextYes
在这里插入图片描述
在这里插入图片描述


直接Next
在这里插入图片描述


Next:
在这里插入图片描述


Done
在这里插入图片描述


2. 安装固态库

打开STM32CubeMX,选择Help下的Manager embedded software packages:
在这里插入图片描述


选择对应的芯片(此处为F1),Install Now:

1.8.4版本有问题,点灯时灯闪一下就不亮了,建议下载其他版本

在这里插入图片描述



二、流水灯实现

上一篇同样使用B0C15A0三个引脚。


选择File下的New Project,即新建项目:
在这里插入图片描述


选择自己的芯片类型(本文为stm32f103c8t6),选择下边的item,然后Start Project
在这里插入图片描述


选择System Core下的SYS,将Debug设置为Serial Wire:
在这里插入图片描述


  • 配置时钟

RCC下的HSE设置为Crystal/Ceramic Resonator
在这里插入图片描述


选择Clock Configuration,如下:
在这里插入图片描述


选择PLLCLK
在这里插入图片描述


  • GPIO设置

选择GPIO,依次将B0C15A0设置为GPIO_Output在这里插入图片描述


将三个引脚的输出默认改为High,即高电平:
在这里插入图片描述


  • 项目配置

Project Manager下的Project中设置工程名称和工程路径,并选择编译软件:
在这里插入图片描述


取消勾选Use lastest available version,选择其他版本:
在这里插入图片描述


Code Generate中选择第一个,然后Generate Code,即生成代码:


打开项目中的main.c文件:
在这里插入图片描述


while循环中写入以下代码:

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

在这里插入图片描述


运行成功:


三、总结

STM32CubeMX操作方便,但还是需要多加练习。

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
流水灯是一种简单的LED灯效,可以通过控制多个LED灯的亮灭顺序来呈现出一种类似于水流般的效果。在STM32中,我们可以使用CubeMX配置工具来生成代码并实现流水灯效果。 以下是基本步骤: 1. 打开STM32CubeMX,选择你使用的MCU型号。 2. 在Pinout & Configuration选项卡中,选择需要使用的GPIO引脚,将其配置为输出。 3. 在Clock Configuration选项卡中,根据需要配置系统时钟。 4. 在Project Manager选项卡中,选择生成代码所需的IDE和语言。 5. 生成代码并打开工程后,在main函数中添加以下代码: ```c /* USER CODE BEGIN 2 */ uint16_t leds[] = {GPIO_PIN_12, GPIO_PIN_13, GPIO_PIN_14, GPIO_PIN_15}; uint8_t led_index = 0; /* USER CODE END 2 */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HAL_GPIO_WritePin(GPIOC, leds[led_index], GPIO_PIN_SET); HAL_Delay(100); HAL_GPIO_WritePin(GPIOC, leds[led_index], GPIO_PIN_RESET); led_index++; if (led_index >= 4) { led_index = 0; } /* USER CODE END 3 */ } ``` 该代码使用了一个leds数组来存储GPIO引脚的编号,led_index变量用于记录当前点亮的LED的编号。在while循环中,每次点亮一个LED,然后将该LED灭掉,再将led_index加1,以便下一个循环点亮下一个LED。当led_index大于等于4时,将其重置为0,以便重新从第一个LED开始循环。 6. 编译并下载代码到STM32开发板中,即可看到流水灯效果。 以上就是使用STM32CubeMX实现流水灯的基本步骤,可以根据需要对代码进行修改,实现更多的灯效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Baker_Streets

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值