用stm32产生pwm信号控制步进电机,频率和占空比怎么弄啊,下面是我写的程序,怎么才能输出波形
#include"timer.h"//PWM输出初始化//arr:自动重装值//psc:时钟预分频数voidPWM_Init(u16arr,u16psc){//此部分需手...
#include "timer.h"
//PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数
void PWM_Init(u16 arr,u16 psc)
{
//此部分需手动修改IO口设置
RCC->APB2ENR|=1<<11; //TIM1时钟使能
////////////////////////////////////////
GPIOA->CRH&=0XFFFF0FF0;//PA8 11 输出
GPIOA->CRH|=0X0000B00B;//复用功能输出
////////////////////////////////////////
TIM1->BDTR |=0xC0; //ARPE使能
TIM1->ARR=arr;//设定计数器自动重装值
TIM1->PSC=psc;//预分频器不分频
TIM1->CCMR1|=6<<4; //CH2 PWM2模式 CH1/2
TIM1->CCMR1|=1<<3; //CH2预装载使能
TIM1->CCMR2|=6<<12; //CH2 PWM2模式 CH3/4
TIM1->CCMR2|=1<<11; //CH2预装载使能
TIM1->CCER|=1<<0; //OC2 输出使能
TIM1->CCER|=1<<12; //OC2 输出使能
TIM1->CR1 |=0x80; //ARPE使能
TIM1->CR1|=0x01; //使能定时器1
TIM1->BDTR|=0x8000; //使能定时器1输出
}
主程序该怎么写啊 展开
//PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数
void PWM_Init(u16 arr,u16 psc)
{
//此部分需手动修改IO口设置
RCC->APB2ENR|=1<<11; //TIM1时钟使能
////////////////////////////////////////
GPIOA->CRH&=0XFFFF0FF0;//PA8 11 输出
GPIOA->CRH|=0X0000B00B;//复用功能输出
////////////////////////////////////////
TIM1->BDTR |=0xC0; //ARPE使能
TIM1->ARR=arr;//设定计数器自动重装值
TIM1->PSC=psc;//预分频器不分频
TIM1->CCMR1|=6<<4; //CH2 PWM2模式 CH1/2
TIM1->CCMR1|=1<<3; //CH2预装载使能
TIM1->CCMR2|=6<<12; //CH2 PWM2模式 CH3/4
TIM1->CCMR2|=1<<11; //CH2预装载使能
TIM1->CCER|=1<<0; //OC2 输出使能
TIM1->CCER|=1<<12; //OC2 输出使能
TIM1->CR1 |=0x80; //ARPE使能
TIM1->CR1|=0x01; //使能定时器1
TIM1->BDTR|=0x8000; //使能定时器1输出
}
主程序该怎么写啊 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询