蓝桥杯嵌入式——LED配置

一、基本资料
LED介绍
蓝桥杯嵌入式——LED配置_第1张图片

  1. 快速编写:资源数据包_嵌入式_2020\6-STM32固件库代码V3.5版\stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples\GPIO\IOToggle
  2. LED用GPIOC的8-15口;BEEP用GPIOB的4口。
  3. BEEP使用开启复用并且引脚重映射,在gpio.h里就能找到。
  4. 闪烁LED_Disp(ucLed ^= 0x01);
  5. 流水灯LED_Disp(0x01<

二、主要代码

led.c

#include "stm32f10x.h"
#include "led.h"

void LED_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_1;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_Init(GPIOC, &GPIO_InitStructure);

	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
	GPIO_Init(GPIOD, &GPIO_InitStructure);		
	
	GPIO_Write(GPIOC,0xff00);  //此时低电平为亮 下方LED显示取反之后高电平为亮
	GPIO_SetBits(GPIOD,GPIO_Pin_2);
	GPIO_ResetBits(GPIOD,GPIO_Pin_2);	
}

void LED_Disp(unsigned char ucLed)
{
	GPIO_Write(GPIOC,~ucLed<<8);  //LED显示取反之后高电平为亮
	GPIO_SetBits(GPIOD,GPIO_Pin_2);
	GPIO_ResetBits(GPIOD,GPIO_Pin_2);		
}

void BEEP_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);  
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); 
	
	GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,ENABLE);	

	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_Init(GPIOB, &GPIO_InitStructure);	
}

led.h

#ifndef  __LED_H_
#define  __LED_H_
		
void LED_Init(void);
void LED_Disp(unsigned char ucLed);
void BEEP_Init(void);

#endif

三、文献参考

1.ReCclay作者代码
2.fei…作者代码(很细致)
3.Zach_z作者代码

你可能感兴趣的:(STM32)