STM32F407VGT6精确脉冲控制步进电机源码,采用STM32F407VGT6芯片,抛弃单脉冲输出方式,直接使用普通PWM输出方式精确输出脉冲个数,每个脉冲都可以改变频率和占空比。PWM+中断,简单粗暴。
#include "sys.h"
#include "delay.h"
#include "pwm1.h"
#include "pwm2.h"
#include "pwm3.h"
//注释见pwm1.c文件
extern int count2;
int main(void)
{
delay_init(168); //初始化延时函数
TIM2_Init(1,167);
TIM3_Init(1,167);
TIM5_Init(1,167);
//delay_ms(1000);
TIM2_OUTPUT();
TIM3_OUTPUT();
TIM5_OUTPUT();
while(1)
{
//TIM2每次输出完10个脉冲后间隔100ms再次输出
if(count2 >= 10){
delay_ms(100);
TIM2_OUTPUT();
}
}