stm32f042f6p6点亮第一个LED灯
Posted 旭日初扬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32f042f6p6点亮第一个LED灯相关的知识,希望对你有一定的参考价值。
目录
一、I/O配置
1.1、GPIO配置
typedef struct
uint32_t GPIO_Pin; /*!< Specifies the GPIO pins to be configured.
This parameter can be any value of */
GPIOMode_TypeDef GPIO_Mode; /*!< Specifies the operating mode for the selected
pins */
GPiospeed_TypeDef GPIO_Speed; /*!< Specifies the speed for the selected pins.
This parameter can be a value of */
GPIOOType_TypeDef GPIO_OType; /*!< Specifies the operating output type for the
selected pins. 选择引脚的输出模式
*/
GPIOPuPd_TypeDef GPIO_PuPd; /*!< Specifies the operating Pull-up/Pull down for the
selected pins.
设置 引脚的上拉\\下拉模式 */
GPIO_InitTypeDef;
1.1、输入/输出模式
typedef enum
GPIO_Mode_IN = 0x00, /*!< GPIO Input Mode */
GPIO_Mode_OUT = 0x01, /*!< GPIO Output Mode */
GPIO_Mode_AF = 0x02, /*!< GPIO Alternate function Mode 复用功能模式 */
GPIO_Mode_AN = 0x03 /*!< GPIO Analog In/Out Mode 模拟输入/输出 */
GPIOMode_TypeDef;
1.2、GPIO引脚与GPIO时钟封装
#include "public.h"
/************************************************************
*************************************************************/
/************************************************************
GPIO Operation
*************************************************************/
//
void GPIOInit(st_u32 RCC_AHBPeriph_GPIOx,GPIO_TypeDef* GPIOx, uint16_t GPIOPin, uint16_t GPIOMode)
// GPIOA~GPIOF
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOx, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIOPin;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = (GPIOMode_TypeDef) GPIOMode;
GPIO_Init(GPIOx, &GPIO_InitStructure);
1.3、配置引脚上拉\\下拉
typedef enum
// 输出IO,配置为NOPULL,当IO输出高电平时,IO为1, 当IO输出低电平时,IO为0;
GPIO_PuPd_NOPULL = 0x00,
// 对于输入IO, 默认为高电平,当需要改变为低电平时配置为PULLUP
GPIO_PuPd_UP = 0x01,
// 输入IO, 默认为低电平,当需要改变为高电平时配置为PULLDOWN。
GPIO_PuPd_DOWN = 0x02
GPIOPuPd_TypeDef
1.4、GPIO引脚与始终的封装
#include "public.h"
/************************************************************
*************************************************************/
/************************************************************
GPIO Operation
时钟 端口 引脚 工作模式
*************************************************************/
void GPIOInit(st_u32 RCC_AHBPeriph_GPIOx,GPIO_TypeDef* GPIOx, uint16_t GPIOPin, uint16_t GPIOMode,GPIOOType_TypeDef GPIOOType,GPIOPuPd_TypeDef GPIOPuPd)
// GPIOA~GPIOF
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOx, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
// 引脚
GPIO_InitStructure.GPIO_Pin = GPIOPin;
// 工作模式
GPIO_InitStructure.GPIO_Mode = (GPIOMode_TypeDef) GPIOMode;
// 选择引脚的操作类型
GPIO_InitStructure.GPIO_OType = (GPIOOType_TypeDef)GPIOOType;
// 引脚的输出\\输出速度
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
// 引脚上拉\\下拉
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOx, &GPIO_InitStructure);
二、实现LED1s闪烁
#define ROOT
#include "public.h"
int main()
SysTick_Init(72);
LED_Init();
while(1)
// 1s 闪烁
delay_ms(500);
LED_L;
delay_ms(500);
LED_H;
三、工程地址
以上是关于stm32f042f6p6点亮第一个LED灯的主要内容,如果未能解决你的问题,请参考以下文章