二十四,点灯与按键

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状态对应4个LED亮灭,最低位对应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状态对应2个LED亮灭,最低位对应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,4在main.c里面引用和调用