您的位置 首页 动态

STM32单片机简易定时器PWM输出

由于RCC->CFGR时钟配置寄存器中APB1设置为2分频,所以TIM3就是其倍频==72M上次我发表的STM32单片机自带PWM输出实验大家可以参考学习:htt

因为RCC->CFGR时钟装备寄存器中 APB1设置为2分频,所以TIM3便是其倍频==72M


前次我宣布的STM32单片机自带PWM输出试验我们能够参阅学习:http://www.51hei.com/mcu/2123.html,这次是用定时器发生的pwm.
//———————————-定时器———–time.c———–
#include “time.h”
void time_init(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<1; //TIM2定时器时钟使能
TIM3->ARR=arr; //设置重装载值
TIM3->PSC=psc; //设置分配系数
TIM3->DIER|=1<<0; //答应更新
TIM3->DIER|=1<<6; //触发中止使能
TIM3->CR1|=1<<0; //使能定时器2
MY_NV%&&&&&%_Init(2,2,TIM3_IRQChannel,2); //设置定时器2中止类别
}

//—————-time.h————–

#ifndef _time_h
#define _time_h
#include “sys.h”
void time_init(u16 arr,u16 psc);
#endif
//———————-按键—–key.c————

#include “key.h”
void key_init(void)
{
RCC->APB2ENR|=1<<2; //PORTA时钟使能
GPIOA->CRH&=0x0f0fffff;
GPIOA->CRH|=0x80800000; //设置为输入
GPIOA->ODR|=1<<15;
GPIOA->ODR|=1<<13;
}

//——————-key.h—————-

#ifndef _key_h
#define _key_h
#include “sys.h”
#define key1 PAin(13)
#define key2 PAin(15)
void key_init(void);
#endif

//——————-LED———led.c————-

#include “led.h”
void led_init(void)
{
RCC->APB2ENR|=1<<2;
RCC->APB2ENR|=1<<5; //使能PORTD时钟
GPIOA->CRH&=0xfffffff0;
GPIOA->CRH|=0x00000003; //PA8推挽输出
GPIOD->CRL&=0xfffff0ff;
GPIOD->CRL|=0x00000300; //PD2推挽输出
GPIOA->ODR|=1<<8;
GPIOD->ODR|=1<<2;
}

//——————led.h———————
#ifndef _led_h

#define _led_h
#include “sys.h”
#define LED0 PAout(8)
#define LED1 PDout(2)

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/dongtai/318381.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部