新手上路
- 积分
- 39
- 金钱
- 39
- 注册时间
- 2019-12-26
- 在线时间
- 9 小时
|
#include "timer.h"
#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
void TIM1_PWM_Init(u16 arr,u16 psc)
{
RCC->APB2ENR|=1<<11; //TIM1和GPIO时钟使能
RCC->APB2ENR|=1<<6;
GPIOE->CRH&=0XFFFF0FFF;
GPIOE->CRH|=0X0000B000;
RCC->APB2ENR|=1<<0; //开启辅助时钟
AFIO->MAPR&=0XFFFFFF3F;
AFIO->MAPR|=0X000000C0;//PE11开启复用推挽输出
TIM1->ARR=arr; //设定重装载值
TIM1->PSC=psc; //设置分频
TIM1->DIER|=1<<0; //允许跟新中断
MY_NVIC_Init(1,3,TIM1_UP_IRQn,2);
TIM1->CCMR1|=7<<12; //CH2 PWM2模式
TIM1->CCMR1|=1<<11; //输出比较2预装载使能
TIM1->CCER|=1<<4; //OC2输出使能
TIM1->CR1|=0X0080; //自动重装载预装载允许位
TIM1->CR1|=1<<0; //使能计数器1
TIM1->BDTR|=1<<15; //TIM1主输出使能
}
void TIM1_UP_IRQHandler()
{
LED=!LED;
delay_ms(500);
TIM3->SR&=~(1<<0);
}
|
|