STM32單片機簡易定時器PWM輸出


上次我發表的STM32單片機自帶PWM輸出實驗大家可以參考學習:http://www.51hei.com/mcu/2123.html,這次是用定時器產生的pwm.
//----------------------------------定時器-----------time.c-----------
#include "time.h"
#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_NVIC_Init(2,2,TIM3_IRQChannel,2); //設置定時器2中斷類別
}
//----------------time.h--------------
主站蜘蛛池模板:
稻城县|
西林县|
西乌珠穆沁旗|
康平县|
宝应县|
英吉沙县|
藁城市|
綦江县|
洛阳市|
深水埗区|
岳池县|
石景山区|
安阳县|
威远县|
古蔺县|
山丹县|
凤山市|
临西县|
洪洞县|
乐昌市|
额敏县|
张家口市|
承德市|
无极县|
江华|
佛学|
浪卡子县|
安塞县|
蓬溪县|
固始县|
汨罗市|
蒙城县|
上栗县|
屏东市|
滨州市|
正宁县|
治县。|
东辽县|
汉川市|
南皮县|
萝北县|
//----------------time.h--------------
#ifndef _time_h
#define _time_h
#include "sys.h"
void time_init(u16 arr,u16 psc);
#endif
//----------------------按鍵-----key.c------------
//-------------------key.h----------------
#ifndef _led_h
//----------------------按鍵-----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;
}
#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)
關鍵詞:
STM32單片機定時器PWM輸
評論