野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10422|回复: 5

火哥,问你个42步进电机的问题?

[复制链接]
发表于 2017-4-8 16:17:39 | 显示全部楼层 |阅读模式
如何用stm32延时发脉冲来调节42步进电机?
回复

使用道具 举报

发表于 2017-4-9 08:37:10 | 显示全部楼层
我使用的定时器+中断来实现延时脉冲的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-9 16:49:00 | 显示全部楼层
do晓风残月ob 发表于 2017-4-9 08:37
我使用的定时器+中断来实现延时脉冲的

可不可以发个程序给我看看,谢谢
回复 支持 反对

使用道具 举报

发表于 2017-4-9 18:28:23 | 显示全部楼层
#include "bsp_tim.h"

void BSP_TIM_NVIC_Config(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
       
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
       
        NVIC_InitStructure.NVIC_IRQChannel = BSP_TIM_IRQ;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
}
void BSP_TIM_MODE_Config(void)
{
        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
        BSP_TIM_APBxClock_FUN(BSP_TIM_CLK,ENABLE);
        TIM_TimeBaseStructure.TIM_Period = BSP_TIM_Period;
        TIM_TimeBaseStructure.TIM_Prescaler = BSP_TIM_Prescaler;
        TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
       
        TIM_TimeBaseInit(BSP_TIM,&TIM_TimeBaseStructure);
        TIM_ClearFlag(BSP_TIM, TIM_FLAG_Update);
        TIM_ITConfig(BSP_TIM, TIM_IT_Update, ENABLE);
        TIM_Cmd(BSP_TIM, ENABLE);
        //BSP_TIM_APBxClock_FUN(BSP_TIM_CLK, DISABLE);

}
定时器
void BSP_TIM_IRQHandler(void)
{
        if( TIM_GetITStatus(BSP_TIM,TIM_IT_Update) != RESET )
        {
                time++;
                TIM_ClearITPendingBit(BSP_TIM,TIM_FLAG_Update);
        }
}
中断
只需要在主函数中设定time的值就可以实现延时效果
火哥的例程资料中有  你可以看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-9 20:39:14 | 显示全部楼层
do晓风残月ob 发表于 2017-4-9 18:28
#include "bsp_tim.h"

void BSP_TIM_NVIC_Config(void)

谢谢了。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

发表于 2017-4-9 20:55:31 | 显示全部楼层
#ifndef __BSP_TIM_H
#define __BSP_TIM_H

#include "stm32f10x.h"

#define BSP_TIM                                 TIM2
#define BSP_TIM_APBxClock_FUN                   RCC_APB1PeriphClockCmd
#define BSP_TIM_CLK                             RCC_APB1Periph_TIM2
#define BSP_TIM_IRQ                             TIM2_IRQn
#define BSP_TIM_IRQHandler                      TIM2_IRQHandler

#define BSP_TIM_Period                          (1000-1)
#define BSP_TIM_Prescaler                       (72-1)                        

void BSP_TIM_MODE_Config(void);
void BSP_TIM_NVIC_Config(void);

#endif /* __BSP_TIM_H */
回复 支持 0 反对 1

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-15 23:20 , Processed in 0.029093 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表