基于HAL库的LED流水灯

一、搭建STM32的开发环境
(一)安装jdk
由于STM32CubeMX是Java实现的,需要安装jdk环境。jdk官网下载链接:https://www.oracle.com/java/technologies/javase-downloads.html
(二)安装STM32CubeMX
1.下载地址:https://www.st.com/en/development-tools/stm32cubemx.html
2.安装完成后打开
二、HEL库GPIO端口3只LED红绿灯的周期闪烁
(一)CubeMX建项目
1.安装固件库
打开STMCubeMX
在这里插入图片描述

确定安装
在这里插入图片描述

2.新建项目
回到STMCubeMX的主界面,创建新项目:
在这里插入图片描述

选择芯片STM32F103C8
在这里插入图片描述
在这里插入图片描述

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

选择端口输出设置,选择需要的端口,点击设置GPIO_OUTPUT,我选择的是PC13,PA15,PB0
在这里插入图片描述
在这里插入图片描述

Project Manager设置
在这里插入图片描述
在这里插入图片描述

创建项目完毕,然后用Keil打开
(二)main.c代码修改
在这里插入图片描述

在while(1)中输入以下代码
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(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET);  // 灯2亮
HAL_Delay(1000); // 延时1s
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET);  // 灯2灭
  
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);  // 灯3亮
HAL_Delay(1000); // 延时1s
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);  // 灯3灭

2.点击编译生成hex文件
在这里插入图片描述

(三)烧录运行结果
1.烧录工具
硬件工具:st-link v2
STM32F103C8开发板
LED灯
线路若干
软件工具:keil c51
2.结果展示
在这里插入图片描述

三、波形观察
1.仿真环境设置
debug设置
在这里插入图片描述

2.点击魔法棒,选择target,晶振选择为8MHZ:
(注意:这个选项在软件仿真中起到很重要的作用,如果选择错误,那么波形一定是错误的,因为时间不准确)
在这里插入图片描述

3.点击调试
在这里插入图片描述

4.设置完成后,开启调试模式,打开逻辑分析仪:
在这里插入图片描述

5.选择要观察的引脚
①点击Setup Logic Analy
②添加要观察的引脚
在这里插入图片描述

6.输入(PORTB & 0X00000000)>>0、Display Type选择Bit,依次输入(PORTA & 0X00008000)>>15、(PORTC & 0X00002000)>>13
在这里插入图片描述

7.点击全速运行;执行一段时间后,点击停止按钮即可:另:点击in或out设置Grid的大小为1s,勾选signal info和cursor可以设置起始线看到相关信息:
在这里插入图片描述

8.波形图
运行一段时间后,点击暂停;为了观察一下延时函数是否准确:将鼠标移动至第一个波形的一条下降沿处,并点击,锁定此刻的时间;再将鼠标移动至第二条波形的下降沿处与其重叠,观察二者的时间:
在这里插入图片描述

总结:用HEL库GPIO端口3只LED红绿灯的周期闪烁要先了解GPIO的配置,需要一个循环(while)来控制流水灯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值