目录
主控芯片STM32F103C8T6
LED
LED(Light Emitting Diode)又叫发光二极管,是采用固体半导体芯片为发光材料,与传统灯具相比,LED灯节能、环保、显色性与响应速度好。
注意!!!
LED 发光时,请勿直视发光光源,特别是对于一些光强较高的 LED,强光可能伤害你的眼睛
硬件接线
显而易见左侧(较长的一侧)接正极,右侧接负极。
本次代码正极接PA0,负极接GND。
模块代码
GPIO控制LED亮灭
led.h
#ifndef _LED_H_
#define _LED_H_
#define LED_ON 0
#define LED_OFF 1
void LED_Init(void);
void LED_SetON(void);
void LED_SetOFF(void);
void LED_Turn(void);
#endif
led.c
#include "stm32f10x.h" // Device header
#include "LED.h"
void LED_Init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStruct);
//GPIO默认输出低电平
GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)LED_OFF); //输出高电平 GPIO_SetBits(GPIOA, GPIO_Pin_0)
}
void LED_SetON(void)
{
GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)LED_ON);
}
void LED_SetOFF(void)
{
GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)LED_OFF);
}
void LED_Turn(void)
{
if(GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_0)==LED_ON)
{
LED_SetOFF();
}
else
{
LED_SetON();
}
}
PWM呼吸灯
PWM.h
#ifndef _PWM_H_
#define _PWM_H_
void PWM_Init(void);
void PWM_SetCompare1(uint16_t Compare);
#endif
PWM.c
#include "stm32f10x.h" // Device header
#include "PWM.h"
void PWM_Init(void)
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
RCC_APB2PeriphClockCmd(RCC_