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里面引用和调用