STM32单片机驱动步进电机—简单篇
STM32单片机驱动步进电机(一)
驱动电机运动
软件:Keil5
设备:步进电机(17HS4401)、驱动器、单片机(STM32F103)
接线方式:
- 电机与驱动器:黑A+,绿A-,红B+,蓝B-
- 驱动器与单片机: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单片机驱动步进电机—简单篇相关推荐
- c51汇编语言 步进电机,51单片机驱动步进电机(汇编语言)
在这里介绍一下用51单片机驱动步进电机的方法. 这款步进电机的驱动电压12V,步进角为 7.5度 . 一圈 360 度 , 需要 48 个脉冲完成!!! 该步进电机有6根引线,排列次序如下:1:红色. ...
- STM32+ULN2003驱动步进电机
选用的步进电机的型号为28BYJ-48(或MP28GA,5V,转速比1/64),驱动电路选用uln2003芯片的驱动板,其控制时序图如下: 四相八拍:A->AB->B ->BC -& ...
- 【Proteus仿真】【STM32单片机】步进电机控制系统设计
文章目录 一.主要功能 二.硬件资源 三.软件设计 四.实验现象 联系作者 一.主要功能 本项目使用Proteus8仿真STM32单片机控制器,使用ULN2003电机模块.LCD1602模块.按键模块 ...
- STM32+DRV8711驱动步进电机
步进电机的驱动原理 步进电机的知识涉及到比较多的东西,这里只是简单介绍一下,关于具体的知识之后再补充. 步进电机的驱动原理时期就是电磁感应现象,给步进电机供电流,然后会产生磁场,再合成磁场的方向,驱动 ...
- STM32单片机驱动全彩LED模块遍历百万种颜色
一.使用硬件 分享一个趣味的实验,单片机PWM驱动全彩LED模块,快速遍历100万种颜色. 单片机为STM32F103C8T6,三色LED模块如下图(图片来源于网络) 二.STM32CubeMx配置 ...
- 51单片机 驱动步进电机 C语言 lcd,基于51单片机的步进电机驱动程序
一.步进电机分类 1.按构造分类 ①反应式: 由定子和转子构成,定子上有绕组,转子由软磁材料制成. ②永磁式: 转子由永磁体制成,转子极数与定子极数相等. ③混合式 定子有多相绕组,转子由永磁体构成, ...
- STM32单片机驱动LCD12864(型号:OCM J4X8C)
0.内容简介 软件:Keil uVision5.Image2LCD 2.9 硬件:STM32F103C8T6.LCD12864(金鹏OCM J4X8C,控制芯片ST7920) 描述:STM32F103 ...
- 51单片机 驱动步进电机 C语言 lcd,51单片机红外遥控控制步进电机的LCD显示源程序...
/******************************************************************************* * 实验名 ...
- STM32单片机驱动DS18B20
为了方便移值,把ds18b20驱动用ds18b20.c 和ds18b20.h封装起来 ds18b20.c代码如下 #include "ds18b20.h"unsigned char ...
- 基于STM32单片机驱动HX711的代码分享,仅供参考
最近在搞一个需要加入称重模块的项目,在调试的时候也是遇到了很够狗血的问题,也参考了别的工程师的设计.所以,闲话少叙,上代码 /************************************ ...
最新文章
- JS进阶篇--JS数组reduce()方法详解及高级技巧
- 你是否应该成为一名全栈工程师?
- python绘图函数教程_OpenCV中的绘图函数
- 深度学习之基于Xception实现四种动物识别
- 八中计算机是学啥的,北京八中:居然有这么好玩的课
- 丁胖胖眼中的WINDOWS操作系统(一)
- Mysql load data local命令详解
- python读取指定路径txt文件-python读取txt文件并取其某一列数据的示例
- php str_replace技巧-避免重复替换
- MFC Windows 程序设计[二十一]之树形控件
- Linux 加密压缩与解压
- 【渝粤教育】广东开放大学 建筑工程计量与计价 形成性考核 (47)
- 教学系列CentOS安装和配置无线网卡
- 中兴ZXV10 H608B无线MODEM开路由自动拨号上网设置
- 《决战大数据》读书笔记(二) cookie识别用户行为已经过时
- 混血网站诞生 公司相互嫁接成就新商业模式
- C++的灵魂核心-类
- 报志愿时计算机一大类分数,高考出分在即 测一测你的分数可以上哪些大学?...
- 2021年10月8日模拟赛(保龄奇遇记)
- Micrel的1588方案
热门文章
- 学完计算机绘图收获有哪些,概率论与数理统计热合买提江网课参考答案查询,画法几何及土木工程制图计算机绘图...
- cad断点快捷键_CAD如何打断?CAD打断点和CAD打断命令操作方法
- 锐捷交换机虚拟化配置
- 会玩儿!网易云音乐推出“还郑州一个七夕”特别策划
- 关于用友凭证打印模板
- 如何在 Mac 操作系统上安装打印驱动程序【富士施乐/胶片】
- 免费好用的 Apple 工具(Windows 适用)
- iPhone 13 投屏到 Windows 10 的办法
- 深入浅出 Kubernetes 架构
- AMD不要靠近卡巴斯基,会变得不幸(卡巴斯基导致的蓝屏问题)