stm32f042f6p6点亮第一个LED灯

Posted 旭日初扬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32f042f6p6点亮第一个LED灯相关的知识,希望对你有一定的参考价值。

目录

一、I/O配置

1.1、GPIO配置

1.1、输入/输出模式

1.2、GPIO引脚与GPIO时钟封装

 1.3、配置引脚上拉\\下拉

1.4、GPIO引脚与始终的封装

二、实现LED1s闪烁

三、工程地址


一、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灯的主要内容,如果未能解决你的问题,请参考以下文章

stm32f042f6p6点亮第一个LED灯

灵动微MM32L052TW可替换STM32F042F6P6

STM32F103系列开发_点亮LED灯

基于STM32F103入门1——点亮LED灯

基于stm32的温湿度检测案例

基于stm32的温湿度检测案例