STM32单片机驱动步进电机(一)

驱动电机运动
软件:Keil5
设备:步进电机(17HS4401)、驱动器、单片机(STM32F103)

接线方式:

  1. 电机与驱动器:黑A+,绿A-,红B+,蓝B-
  2. 驱动器与单片机:MF-PC8,DR-PC9,PU-PB5,COM-3.3V

main.c:(注解部分为此次用不上的程序)

#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "timer.h"
#include "foot_definition.h"int main(void)
{TIM3_PWM_Init(99,99);PC89_Init();//uart1_init(115200);//PA9  PA10 //uart2_init(115200);//PA2  PA3//uart3_init(115200);//PB10 PB11delay_init();//KEY_Init();     LED_Init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);while (1){ GPIO_SetBits(GPIOC,GPIO_Pin_9); GPIO_SetBits(GPIOC,GPIO_Pin_8);TIM_Cmd(TIM3, ENABLE);                 LED1=!LED1;}
}

time.c:

#include "timer.h"
#include "led.h"
#include "usart.h"void TIM3_PWM_Init(u16 arr,u16 psc)
{  GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;TIM_OCInitTypeDef  TIM_OCInitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB  | RCC_APB2Periph_AFIO, ENABLE);  GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);TIM_TimeBaseStructure.TIM_Period = arr; TIM_TimeBaseStructure.TIM_Prescaler =psc; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OCInitStructure.TIM_Pulse=arr;  TIM_OC2Init(TIM3, &TIM_OCInitStructure); TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); TIM_Cmd(TIM3, DISABLE);
}

time.h:

#ifndef __TIMER_H
#define __TIMER_H
#include "sys.h"void TIM3_PWM_Init(u16 arr,u16 psc);

foot_definition.c:(名字随意取得,用以存放调用串口的程序)

#include "foot_definition.h"
#include "stm32f10x_it.h"
#include "delay.h"void PC89_Init(void) //
{GPIO_InitTypeDef  GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9;              GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOC, &GPIO_InitStructure);GPIO_ResetBits(GPIOC,GPIO_Pin_8);    //MFGPIO_ResetBits(GPIOC,GPIO_Pin_9);      //DIR
}

foot_definition.h:

#ifndef _FOOT_DEFINITION_H
#define _FOOT_DEFINITION_Hvoid PC89_Init(void);

可以通过修改 TIM3_PWM_Init(99,99) 括号中的两个参数来改变PWM脉冲发送的频率,以达到控制电机转速的目的。

STM32单片机驱动步进电机—简单篇相关推荐

  1. c51汇编语言 步进电机,51单片机驱动步进电机(汇编语言)

    在这里介绍一下用51单片机驱动步进电机的方法. 这款步进电机的驱动电压12V,步进角为 7.5度 . 一圈 360 度 , 需要 48 个脉冲完成!!! 该步进电机有6根引线,排列次序如下:1:红色. ...

  2. STM32+ULN2003驱动步进电机

    选用的步进电机的型号为28BYJ-48(或MP28GA,5V,转速比1/64),驱动电路选用uln2003芯片的驱动板,其控制时序图如下: 四相八拍:A->AB->B ->BC -& ...

  3. 【Proteus仿真】【STM32单片机】步进电机控制系统设计

    文章目录 一.主要功能 二.硬件资源 三.软件设计 四.实验现象 联系作者 一.主要功能 本项目使用Proteus8仿真STM32单片机控制器,使用ULN2003电机模块.LCD1602模块.按键模块 ...

  4. STM32+DRV8711驱动步进电机

    步进电机的驱动原理 步进电机的知识涉及到比较多的东西,这里只是简单介绍一下,关于具体的知识之后再补充. 步进电机的驱动原理时期就是电磁感应现象,给步进电机供电流,然后会产生磁场,再合成磁场的方向,驱动 ...

  5. STM32单片机驱动全彩LED模块遍历百万种颜色

    一.使用硬件 分享一个趣味的实验,单片机PWM驱动全彩LED模块,快速遍历100万种颜色. 单片机为STM32F103C8T6,三色LED模块如下图(图片来源于网络) 二.STM32CubeMx配置 ...

  6. 51单片机 驱动步进电机 C语言 lcd,基于51单片机的步进电机驱动程序

    一.步进电机分类 1.按构造分类 ①反应式: 由定子和转子构成,定子上有绕组,转子由软磁材料制成. ②永磁式: 转子由永磁体制成,转子极数与定子极数相等. ③混合式 定子有多相绕组,转子由永磁体构成, ...

  7. STM32单片机驱动LCD12864(型号:OCM J4X8C)

    0.内容简介 软件:Keil uVision5.Image2LCD 2.9 硬件:STM32F103C8T6.LCD12864(金鹏OCM J4X8C,控制芯片ST7920) 描述:STM32F103 ...

  8. 51单片机 驱动步进电机 C语言 lcd,51单片机红外遥控控制步进电机的LCD显示源程序...

    /******************************************************************************* * 实验名              ...

  9. STM32单片机驱动DS18B20

    为了方便移值,把ds18b20驱动用ds18b20.c 和ds18b20.h封装起来 ds18b20.c代码如下 #include "ds18b20.h"unsigned char ...

  10. 基于STM32单片机驱动HX711的代码分享,仅供参考

    最近在搞一个需要加入称重模块的项目,在调试的时候也是遇到了很够狗血的问题,也参考了别的工程师的设计.所以,闲话少叙,上代码 /************************************ ...

最新文章

  1. JS进阶篇--JS数组reduce()方法详解及高级技巧
  2. 你是否应该成为一名全栈工程师?
  3. python绘图函数教程_OpenCV中的绘图函数
  4. 深度学习之基于Xception实现四种动物识别
  5. 八中计算机是学啥的,北京八中:居然有这么好玩的课
  6. 丁胖胖眼中的WINDOWS操作系统(一)
  7. Mysql load data local命令详解
  8. python读取指定路径txt文件-python读取txt文件并取其某一列数据的示例
  9. php str_replace技巧-避免重复替换
  10. MFC Windows 程序设计[二十一]之树形控件
  11. Linux 加密压缩与解压
  12. 【渝粤教育】广东开放大学 建筑工程计量与计价 形成性考核 (47)
  13. 教学系列CentOS安装和配置无线网卡
  14. 中兴ZXV10 H608B无线MODEM开路由自动拨号上网设置
  15. 《决战大数据》读书笔记(二) cookie识别用户行为已经过时
  16. 混血网站诞生 公司相互嫁接成就新商业模式
  17. C++的灵魂核心-类
  18. 报志愿时计算机一大类分数,高考出分在即 测一测你的分数可以上哪些大学?...
  19. 2021年10月8日模拟赛(保龄奇遇记)
  20. Micrel的1588方案

热门文章

  1. 学完计算机绘图收获有哪些,概率论与数理统计热合买提江网课参考答案查询,画法几何及土木工程制图计算机绘图...
  2. cad断点快捷键_CAD如何打断?CAD打断点和CAD打断命令操作方法
  3. 锐捷交换机虚拟化配置
  4. 会玩儿!网易云音乐推出“还郑州一个七夕”特别策划
  5. 关于用友凭证打印模板
  6. 如何在 Mac 操作系统上安装打印驱动程序【富士施乐/胶片】
  7. 免费好用的 Apple 工具(Windows 适用)
  8. iPhone 13 投屏到 Windows 10 的办法
  9. 深入浅出 Kubernetes 架构
  10. AMD不要靠近卡巴斯基,会变得不幸(卡巴斯基导致的蓝屏问题)