本文共 1845 字,大约阅读时间需要 6 分钟。
本篇承接<>。实现模板工程的应用,主要参考资料:
在 Template 文件夹中,新进 hardware 文件夹。如下图所示:
将 Template 文件夹名称改成LED.
定位到 \LED\user 。删除掉多余的文件,剩余:
将三个文件名为 Template 的文件 全部修改名称为:LED。如下图所示:
双击 LED.uvprojx 文件,打开项目:
点击 Manage Project Items 按钮,如下图所示:
在HARDWARE处右击,选择 Add New Item to Group ‘HARDWARE’.
选择C File,名称为led,位置选择在hardware文件夹,最后点击 Add 。如下图所示:
类似的,建立led的头文件。如下图所示:
添加头文件到工程,如下图所示:
编写LED初始化文件:
头文件:
#ifndef _LED_H#define _LED_Hextern void LED_Init(void);#endif
c文件:
#include "led.h"#include "stm32f4xx.h"void LED_Init(void){ GPIO_InitTypeDef GPIO_Initure; __HAL_RCC_GPIOB_CLK_ENABLE(); //开启GPIOB时钟 GPIO_Initure.Pin=GPIO_PIN_0|GPIO_PIN_1; //PB1,0 GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP; //推挽输出 GPIO_Initure.Pull=GPIO_PULLUP; //上拉 GPIO_Initure.Speed=GPIO_SPEED_HIGH; //高速 HAL_GPIO_Init(GPIOB,&GPIO_Initure); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET); //PB0置1,默认初始化后灯灭 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET); //PB1置1,默认初始化后灯灭}
#include "sys.h"#include "delay.h"#include "led.h"int main(void){ HAL_Init(); //初始化HAL库 Stm32_Clock_Init(360,25,2,8); //设置时钟,180Mhz delay_init(180); //初始化延时函数 LED_Init(); //初始化LED while(1) { HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET); //LED0对应引脚PB1拉低,亮,等同于LED0(0) HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET); //LED1对应引脚PB0拉高,灭,等同于LED1(1) delay_ms(500); //延时500ms HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET); //LED0对应引脚PB1拉高,灭,等同于LED0(1) HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET); //LED1对应引脚PB0拉低,亮,等同于LED1(0) delay_ms(500); //延时500ms }}
两个LED灯,同时闪烁,周期为1s。如下图所示。
转载地址:http://ubztz.baihongyu.com/