STM32基于HAL库流水灯实验

文章目录

  • 一、环境搭建
    • 1.安装jdk
    • 2.安装MDK
    • 3.安装STM32CubeMX
  • 二、HEL库GPIO端口3只LED红绿灯的周期闪烁
    • 1.创建项目
    • 2.代码及烧录
    • 3.波形观察
  • 三、总结
  • 参考链接

一、环境搭建

1.安装jdk

由于STM32CubeMX是Java实现的,需要安装jdk环境。
jdk官网下载链接:下载官网

2.安装MDK

这一部分的内容之前做过,这里附上链接:基于MDK创建纯汇编语言的STM32工程

3.安装STM32CubeMX

下载地址
安装过程只要一直点击next即可,这里展示一下固件库的安装
Help->Magne
STM32基于HAL库流水灯实验_第1张图片
STM32基于HAL库流水灯实验_第2张图片

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

1.创建项目

①File->Project
②选择芯片STM32F103C8->start project
STM32基于HAL库流水灯实验_第3张图片
③.SYS选择
STM32基于HAL库流水灯实验_第4张图片
④RCC选择
STM32基于HAL库流水灯实验_第5张图片
⑤选择端口输出设置,选择需要的端口,点击设置GPIO_OUTPUT,我选择了PA7,PB9,PC15
STM32基于HAL库流水灯实验_第6张图片
⑥点击System core里的GPIO,把点击引脚名,把输出等级改为high
STM32基于HAL库流水灯实验_第7张图片
⑦Clock Configuration设置
STM32基于HAL库流水灯实验_第8张图片
⑧Project Manager设置
STM32基于HAL库流水灯实验_第9张图片
STM32基于HAL库流水灯实验_第10张图片
⑨创建完成并用keil打开
STM32基于HAL库流水灯实验_第11张图片
打开keil时,如果遇到以下情况,点击第一项即可
STM32基于HAL库流水灯实验_第12张图片

2.代码及烧录

①在打开的文件中找到main.c文件并输入以下代码

HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET);//PA7亮灯
		HAL_Delay(500);//延时0.5s
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);//PA7熄灯
		HAL_Delay(500);//延时0.5s		
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);//PB9亮灯
		HAL_Delay(500);//延时0.5s
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄灯
		HAL_Delay(500);//延时0.5s
		
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_RESET);//PC15亮灯
		HAL_Delay(500);//延时0.5s
		
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_SET);//PC15熄灯
		HAL_Delay(500);//延时0.5s

②点击编译生成hex文件
编译通过
③打开mcuisp,进行烧录,按以下步骤操作,注意勾选和更改
STM32基于HAL库流水灯实验_第13张图片
④烧录成功
STM32基于HAL库流水灯实验_第14张图片
⑤运行结果

运行结果

3.波形观察

①设置Debug
第一个地方要勾选,第二个要全部改成DARMSTM.DLL和-pSTM32F103C8
STM32基于HAL库流水灯实验_第15张图片
②点击调试
③选择逻辑分析仪
STM32基于HAL库流水灯实验_第16张图片
④选择要观察的引脚
点击Setup Logic Analy
STM32基于HAL库流水灯实验_第17张图片
添加要观察的引脚
STM32基于HAL库流水灯实验_第18张图片
根据自己的接口,写入对应的数据,将display type改为bit,
运行程序即可得到结果
⑤运行结果
STM32基于HAL库流水灯实验_第19张图片

三、总结

本次的实验中,学会了HAL库来实现流水灯,对于,面包板和stm32芯片的使用更加熟练了。了解了流水灯的原理,包括GPIO配置、设置 GPIOx 某个引脚的默认电平,配置 GPIOx 引脚号、输入/输出方式、输出速度/输入类型。

参考链接

面包板的怎么使用
搭建STM32开发环境——STM32CubeMX,Keil5
STM32实现LED闪烁——基于HAL库

你可能感兴趣的:(嵌入式程序设计基础,stm32,嵌入式硬件,单片机)