ARM:PWM脉冲调节

风扇的使用代码:

#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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值