基于STM32的PWM三色呼吸灯
通过按键控制三色呼吸灯。按键中断打开捕获使能,定时器中断使能,核心级中断使能,从而进入定时器中断服务子程序,进行pwm控制呼吸灯。
main.c文件程序
#include "stm32f4xx.h"
#include "key.h"
#include "interr.h"
#include "pwm_timer4.h"
int main(void)
{
key_init();
timer4_init();
interr_init();
while(1);
}
key.h文件程序
#ifndef KEY_H
#define KEY_H
#include "stm32f4xx.h"
#include "io_bit.h"
#define KEY0 PAin(0)
#define KEY1 PEin(2)
#define KEY2 PEin(3)
void key_init(void);
#endif
key.c文件程序
#include "key.h"
void key_init(void) //PA0 PE2 PE3
{
RCC->AHB1ENR|=1;
GPIOA->MODER&=~(0x3<<(0*2));
GPIOA->PUPDR&=~(0x3<<(0*2));
GPIOA->PUPDR|=(0x2<<(0*2)); //10 下拉
RCC->AHB1ENR|=1<<4;
GPIOE->MODER&=~(0xf<<(2*2)); //00
GPIOE->PUPDR&=~(0xa<<(2*2))</