STM32基于HAL库流水灯实验
一、搭建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.安装过程
①以管理员身份运行并安装 SetupSTM32CubeMX-4.27.0.exe
,进入下面这个界面后,点击Next
②勾选"I accept the terms of this license agreement",接着选择Next
③选择安装位置,默认位置是安装在C盘中(注意:安装位置不要出现中文)
④点击确定
⑤选择Next
⑥安装完成后,选择Next
⑦点击Done
就完成安装
3.安装固件库
①运行CubeMX
②选择 Help
->Magne ....
安装固件库
(三)安装MDK5
具体安装请参照下面链接:
https://blog.csdn.net/qq_43279579/article/details/108880667
二、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,实现流水效果。