初级会员

- 积分
- 80
- 金钱
- 80
- 注册时间
- 2018-2-1
- 在线时间
- 17 小时
|
5金钱
用驱动器驱动步进电机,我按照正点原子配置pwm寄存器的方式输出pwm驱动电机(同时并联了一个小灯以做测试),为什么小灯可以持续亮而电机刚开始转了几下后就不转了呢?
以下是代码
#ifndef TIMER_H
#define TIMER_H
#include "sys.h"
//#define LED0 PBout(5)
void timer_pwm(u16 prr,u16 psc);
//void led_init(void);
#endif
#include"timer.h"
#include"sys.h"
/*void led_init()
{
RCC->APB2ENR=0x00000008;
GPIOB->CRL=0x0030000;
PBout(5)=0;
}*/
void timer_pwm(u16 arr,u16 psc)
{
RCC->APB1ENR=0x00000002; //TIM3时钟使能
RCC->APB2ENR=0x00000009; //PORTB时钟使能及AFIO辅助时钟使能
GPIOB->CRL=0x00B00003; //PB5配置为复用推挽输出,PB0配置为推挽输出
AFIO->MAPR=0x00000800; //TIM_CH2重映射到PB5
TIM3->ARR=arr; //赋予重装值
TIM3->PSC=psc; //预分频数
//TIM3->CCR2=300;
TIM3->CCMR1=0x7800; //设置预装载位使能和pwm模式
TIM3->CCER=0x0010; //TIM3_CH2通道使能
TIM3->CR1=0x0081; //TIM3定时器使能
PBout(0)=0;
}
#include"timer.h"
#include"delay.h"
#include"usart.h"
int main()
{
//u16 dir=2;
Stm32_Clock_Init(9);
delay_init(72);
uart_init(72,115200);
// led_init();
timer_pwm(500,0);
while(1)
{
TIM3->CCR2=300;
}
}
|
最佳答案
查看完整内容[请看2#楼]
那我去搞个示波器调调看,顺便问一下,用驱动器驱动步进电机,占空比不同会有影响吗?然后驱动器一般是高电平有效还是低电平有效呢?
|