二十四,点灯与按键

本文详细介绍了如何使用STM32进行GPIO驱动,包括LED1和LED2的独立控制、整组操作以及状态取反,同时涉及了如何与按键交互并实现灯的状态变化。通过HAL库实现定时延时控制。
摘要由CSDN通过智能技术生成

二十四,点灯与按键

Stm32点灯

1,创建驱动文件总文件夹

2保存文件夹

3,在文件夹里创建子文件夹

4,保存这个子文件夹,命名是将要编程的驱动功能.

5,在驱动文件夹里面建立.c.h文件.

6,然后复制粘贴例子里的.c.h文件到工程里.

.h

#include “stm32f1xx_hal.h” //HAL库文件声明

#include “main.h” //IO定义与初始化函数在main.c文件中,必须引用

void LED_1(uint8_t a);//LED1独立控制函数(0为熄灭,其他值为点亮)

void LED_2(uint8_t a);//LED2独立控制函数(0为熄灭,其他值为点亮)

void LED_ALL(uint8_t a);//LED1~4整组操作函数(低4位的1/0状态对应4LED亮灭,最低位对应LED1

void LED_1_Contrary(void);//LED1状态取反

void LED_2_Contrary(void);//LED2状态取反

.c

#include “led.h”

oid LED_1(uint8_t a)//LED1独立控制函数(0为熄灭,其他值为点亮)

{

if(a)HAL_GPIO_WritePin(GPIOB,LED1_Pin,GPIO_PIN_SET);

else HAL_GPIO_WritePin(GPIOB,LED1_Pin,GPIO_PIN_RESET);

}

void LED_2(uint8_t a)//LED2独立控制函数(0为熄灭,其他值为点亮)

{

if(a)HAL_GPIO_WritePin(GPIOB,LED2_Pin,GPIO_PIN_SET);

else HAL_GPIO_WritePin(GPIOB,LED2_Pin,GPIO_PIN_RESET);

}

void LED_ALL(uint8_t a)//LED1~2整组操作函数(低2位的1/0状态对应2LED亮灭,最低位对应LED1

{

if(a&0x01)HAL_GPIO_WritePin(GPIOB,LED1_Pin,GPIO_PIN_SET);

else HAL_GPIO_WritePin(GPIOB,LED1_Pin,GPIO_PIN_RESET);

if(a&0x02)HAL_GPIO_WritePin(GPIOB,LED2_Pin,GPIO_PIN_SET);

else HAL_GPIO_WritePin(GPIOB,LED2_Pin,GPIO_PIN_RESET);

}

void LED_1_Contrary(void){

HAL_GPIO_WritePin(GPIOB,LED1_Pin,1-HAL_GPIO_ReadPin(GPIOB,LED1_Pin));

}

void LED_2_Contrary(void){

HAL_GPIO_WritePin(GPIOB,LED2_Pin,1-HAL_GPIO_ReadPin(GPIOB,LED2_Pin));

}

7,驱动搞定以后,就可以在main.c里面引用头文件控制了

#include “../../icode/led/led.h”

引用路径详解

LED_1(1);//LED1灯控制(1点亮,0熄灭)

LED_2(0);//LED2灯控制(1点亮,0熄灭)

HAL_Delay(100);//在主循环里写入HAL库的毫秒级延时函数

LED_1(0);//LED1灯控制(1点亮,0熄灭)

LED_2(1);//LED2灯控制(1点亮,0熄灭)

HAL_Delay(100);//在主循环里写入HAL库的毫秒级延时函数

9,按键点灯

9.1,建立文件夹

9.2,创建.c.h文件

9.3程序文件复制

9,4main.c里面引用和调用

 

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值