基于HAL库点亮流水灯

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档



提示:以下是本篇文章正文内容,下面案例可供参考

一、用GPIO端口完成3只流水灯的周期闪烁

(一)环境配置
下载STM32CubeMX并安装HAL库,过程详见:
https://blog.csdn.net/weixin_56102526/article/details/120877293

(二)新建项目及过程
1.点击File,点击New Project
请添加图片描述
2.选择STM32F103C8T6芯片,点击start project
请添加图片描述
3.点击SYS,将Debug选择为Serial Write
请添加图片描述
4.点击RCC,将HSE选择为Crystal/Ceramic Resonator
请添加图片描述
5.点击GPIO,设置端口
请添加图片描述
6.点击Clock Configuration,并设置为如图
请添加图片描述
7.点击Project Manager,输入项目名称等
请添加图片描述
请添加图片描述
8.最后生成项目在keil中,在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灭


请添加图片描述
9.编译并生成hex文件,使用flymcu进行烧录
最终点亮效果为:
在这里插入图片描述
10.波形观察
请添加图片描述

二、采用中断模式编程,当开关接高电平时,LED流水灯工作;接低电平时,LED流水灯停止工作。

(一)新建项目
前面选择芯片等操作参考上面
1.选择 LED 灯引脚 PA5,设置引脚为输出模式 GPIO_Output;
选择作为外部中断的引脚 PB15,设置为与中断线 GPIO_EXTI15 连接。请添加图片描述
2.使能引脚对应的外部中断线 EXTI line[15:10]
请添加图片描述
3.配置中断优先级
请添加图片描述
4.输入项目名称请添加图片描述
5.导入keil并添加代码
请添加图片描述

void HAL_GPIO_EXIT_Callback(uint16_t GPIO_Pin)
  {
	  if(GPIO_Pin==B1_EXIT_Pin)
	  {
		  HAL_GPIO_TogglePin(LD_1_GPIO_Port,LD_1_Pin);
	  }
  }

6.烧录及点亮结果
在这里插入图片描述

参考链接:
https://blog.csdn.net/qq_47281915/article/details/121024427
https://blog.csdn.net/weixin_56102526/article/details/120877293

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值