风扇的使用代码:
#include "fan.h"
void hal_fan_init()
{
/******RCC章节初始化**********/
//1、使能GPIOE组
RCC->MP_AHB4ENSETR |=0x1 <<4;
//2、使能TIM组相关控制器
RCC->MP_APB2ENSETR |=0x1;
/******GPIO章节初始化*******/
GPIOE->MODER &=(~(0x3 << 18));
GPIOE->MODER |=(0x2 << 18);
GPIOE->AFRH &= (~(0xf << 4));
GPIOE->AFRH |= (0x1 << 4);
/******TIM4章节初始化*******/
TIM1->BDTR |=0x1 << 15;
TIM1->PSC |=208;
TIM1->ARR |=1000;
TIM1->CCR1 |=700;
TIM1->CCMR1 &=0x0 << 16;
TIM1->CCMR1 &=(~(0x7 << 4));
TIM1->CCMR1 |=0x6 << 4;
TIM1->CCMR1 |=0x1 << 3;
TIM1->CCMR1 &=(~(0x3 ));
TIM1->CCER &=(~(0x1<<3));
TIM1->CCER |=0x1<<1;
TIM1->CCER |=0x1;
TIM1->CR1 |=0x1 << 7;
TIM1->CR1 &=(~(0x0 << 5));
TIM1->CR1 |=0x1 << 4;
TIM1->CR1 |=0x1 ;
}
震动马达的代码:
#include "beep.h"
void hal_beep_init()
{
/******RCC章节初始化**********/
//1、使能GPIOF组
RCC->MP_AHB4ENSETR |=0x1 <<5;
RCC->MP_APB2ENSETR |=0x1 <<3 ;
/******GPIO章节初始化*******/
GPIOF->MODER &=(~(0x3 << 12));
GPIOF->MODER |=(0x2 << 12);
GPIOF->AFRL &= (~(0xf << 24));
GPIOF->AFRL |= (0x1 << 24);
/******TIM16章节初始化*******/
TIM16->PSC |=20;
TIM16->ARR |=100;
TIM16->CCR1 |=20000;
TIM16->CCMR1 &=(~(0x1 << 16));
TIM16->CCMR1 &=(~(0x7 << 4));
TIM16->CCMR1 |=0x6 << 4;
TIM16->CCMR1 |=0x1 << 3;
TIM16->CCMR1 &=(~(0x3 ));
TIM16->CCER &=(~(0x1<<3));
TIM16->CCER &=(~(0x1<<1));
TIM16->CCER |=0x1;
TIM16->CR1 |=0x1 << 7;
TIM16->CR1 &=(~(0x3 << 5));
// TIM16->CR1 |=0x1 << 4;
TIM16->CR1 |=0x1 ;
TIM16->BDTR |=0x1 << 15;
}