STM32基于HAL库流水灯实验

STM32 基于HAL 库流水灯实验

一.搭建 STM32 开发环境

自行安装 jdk、STM32CubeMX、MDK5

我这里已经安装完毕

二.HEL 库GPIO 端口 3 只 LED 红绿灯的周期闪烁

(一)CubeMX 建项目

1.新建File->Project

2.选择芯片STM32F103C8

3.SYS选择

4.RCC选择

5.选择端口输出设置,选择需要的端口,点击设置GPIO_OUTPUT,我选择的是 PC13,PA15,PC0




6.Clock Configuration设置

7.Project Manager设置


8.创建完成并用 keil 打开

(二)main.c 代码修改

1.在 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.打开 mcuisp,进行烧录

2.烧录成功

3.烧录结果

三、波形观察

1.设置 Debug

2.点击调试

3.选择逻辑分析仪

4.选择要观察的引脚:
① 点击 Setup Logic Analy

② 添加要观察的引脚:

5.输入(PORTB & 0X00000000)>>0、Display Type 选择 Bit,依次输入(PORTA & 0X00008000)>>15、(PORTC & 0X00002000)>>13

6.运行程序

7.波形图

四、总结

本次流水灯实验,理清了流水灯的原理,首先是包括 GPIO 配置、设置 GPIOx 某个引脚的默认电平,配置 GPIOx 引脚号、输入/输出方式、输出速度/输入类型。实现流水效果(main 函数),需要一个 while 循环,保持程序一直运行,调用延时函数 HAL_Delay(1000),延时 1000s,实现流水效果。

引用--https://blog.csdn.net/weixin_56102526/article/details/120877293

posted @ 2023-10-27 20:54  verthy  阅读(184)  评论(0编辑  收藏  举报