基于HAL库实现流水灯

项目创建过程

1.打开stm32cube,点击new project
在这里插入图片描述
2.选择对应型号单片机,本次实验采用stm32f103c8T6型号
在这里插入图片描述
3.点击对应的引脚,选择GPIO_output,选择要用到引脚,本次实验使用A4、B5、C14引脚
在这里插入图片描述在这里插入图片描述
4.配置系统调试接口,选择Serial Wire
在这里插入图片描述
5.配置GPIO
在这里插入图片描述
6.配置项目,输入项目名称,Application Structure 选择Basic,IDE选择MDK 5
在这里插入图片描述
在这里插入图片描述

keil使用代码过程

1.打开用cube生成的项目后打开main函数
在这里插入图片描述
2.在main函数里面找到while循环,在循环体内部加入流水灯代码

		//高电平点亮A4
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);
		//延时一秒
		HAL_Delay(1000);
		//低电平熄灭A4
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);
		
		
		//高电平点亮B5
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET);
		//延时一秒
		HAL_Delay(1000);
		//低电平熄灭B5
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_RESET);
		
		
		//高电平点亮C14
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,GPIO_PIN_SET);
		//延时一秒
		HAL_Delay(1000);
		//低电平熄灭C14
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,GPIO_PIN_RESET);

在这里插入图片描述
3.简单分析
当我们使用寄存器来达到上述效果的时候,需要使能时钟、配置输入输出模式等操作。而使用HAL库的时候,通过stm32CubeMX会自动生成对应引脚的配置代码。在main.c里面的MX_GPIO_Init函数即是。

波形图效果

1.先build项目,然后点击debug
在这里插入图片描述
2.点击System Analyzer Windows,选择Logic Analyzer
在这里插入图片描述
3.添加需要观察的引脚
先点击添加,输入需要观察的引脚后回车。格式可以用GPIOx_IDR.n(x为端口,n为引脚号,GPIOA_IDR.4表示PA4),在Display Type记住要选择bit,完成后点击close即可
在这里插入图片描述

实物图效果

嵌入式系统 STM32F103寄存器方式点亮LED流水灯效果

总结

本次流水灯实验,理清了流水灯的原理,首先是包括GPIO配置、设置 GPIOx 某个引脚的默认电平,配置 GPIOx 引脚号、输入/输出方式、输出速度/输入类型。通过使用HAL库可以大大减少我们配置对应引脚的时间和代码量,在操作方面也大为方便,不需要再翻资料查找每一个寄存器的基地址了。

参考文献

https://blog.csdn.net/qq_47281915/article/details/120832690?spm=1001.2014.3001.5501.

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值