STM32串口控制步进电机(原创)
用的42步进电机:
厂家可能不一样,两项四线步进电机,里面有两个线圈。在电机什么电都没有接的情况下,用万用表测量四个管脚;两两短接(或者阻值很小)的为一组,可以分别接A+,a-剩余接B+,B-;顺序可以互换; 经测,我用的17hs4417 黑绿一组,红蓝一组。
建议还是买个步进电机驱动器,五六十一个,相当好用。
贴一下STM32串口控制步进电机的代码:
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "timer.h" //#define EN PBout(0)//步进电机使能端口置零停止
//#define Dirt PBout(1) //置零反转 ,
//en 绿色 pb0
//dir- 黄色 正反 pb1
//pul— 蓝色 脉冲 pb5
//共阳极 橙色 3.3v
int main(void)
{ u8 t;
u8 Rx1;
u8 Rx2;
u32 n;
u16 pwmval=;
delay_init(); //延时函数初始化
NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(); //串口初始化为9600
LED_Init();
TIM3_PWM_Init(,);
//LED端口初始化
//不分频。PWM频率=72000000/7200=10000hz 10000/100=100hz;
//400-1000
EN=;//开机后,步进电机使能为0,不转
Dirt=;
while()
{
TIM_SetAutoreload(TIM3,n);
pwmval=n/;
TIM_SetCompare2(TIM3,pwmval);
//n=750;
if(USART_RX_STA&0x8000)
{
Rx1=USART_RX_BUF[];
Rx2=USART_RX_BUF[];
USART_RX_STA=;}
switch (Rx1)
{
// case 'g': TIM3_PWM_Init(720,700);EN=1;Dirt=0;break;// 前进
// case 'b': TIM3_PWM_Init(720,700);EN=1;Dirt=0;break;// 后退:步进电机暂时没有前进后退
case 'l': n=;EN=;Dirt=;break;// 左转
case 'r': n=;EN=;Dirt=;break;// 右转
case 's': EN=;break;// 停止
case 'a': n=Rx2*+;EN=;Dirt=;break;// 自动巡航左转
case 'c': n=Rx2*+;EN=;Dirt=;break;// 自动巡航右转
default:break;
}
}
}
关于PWM的使用方法,在博主的其他随笔里有较详细说明。
STM32串口控制步进电机(原创)的更多相关文章
- STM32 控制步进电机 28BYJ-48
STM32 控制步进电机 28BYJ-48 http://blog.chinaunix.net/uid-12664992-id-300272.html 步进电机驱动最简化的逻辑: //四相八拍:A- ...
- STM32学习笔记(四)——串口控制LED(中断方式)
目录: 一.时钟使能,包括GPIO的时钟和串口的时钟使能 二.设置引脚复用映射 三.GPIO的初始化配置,注意要设置为复用模式 四.串口参数初始化配置 五.中断分组和中断优先级配置 六.设置串口中断类 ...
- stm32控制步进电机加减速
实习公司项目需要控制步进电机,电机方面主要包括控制运动.加减速.限位.下面介绍一下在电机控制方面的心得,由于对于电机的控制不需要很精确,并且自身能力有限,相比于大牛有很大的差距. 1.需要实现的功能 ...
- 用STM32定时器中断产生PWM控制步进电机
控制步进电机可以使用PWM.定时器中断.延时,这里用的就是定时器中断来让它转动. 一.硬件部分1.使用的硬件板子用的是正点原子的STM32F103 mini板,驱动器是DM420(DM420驱动器资料 ...
- STM32串口寄存器操作(转)
源:STM32串口寄存器操作 //USART.C /************************************************************************** ...
- STM32串口打印输出乱码的解决办法
前言 最近在试用uFUN开发板,下载配套的Demo程序,串口数据输出正常,当使用另一个模板工程,调用串口printf调试功能时,输出的却是乱码,最后发现是外部晶振频率不一样.很多STM32开发板都是使 ...
- STM32串口通信UART使用
STM32串口通信UART使用 uart使用的过程为: 1. 使能GPIO口和UART对应的总线时钟 2. 配置GPIO口的输出模式 3. 配置uart口相关的基本信息 4. 使能uart口的相关的中 ...
- 串口控制RGB灯程序
实验目的: 通过上位机给串口发送数据(字符); STM32收到数据进入中断程序原封不动返回上位机,并且根据收到的信息产出相应的进行操作.(1- led_on 2 – ledoff...); 源码 ...
- STM32串口遇到的一个问题
做HLW8032电能表项目中关于USART使用DMA接收定长数据的问题 1:由于HLW8032芯片一上电,芯片就会通过串口每隔50ms向STM32发送24字节的数据,且我不能通过STM32控制HLW8 ...
随机推荐
- java基础--动态代理实现与原理详细分析
关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式--代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理. 一.代理模式 ...
- firefox上安装selenium ide失败
Selenium 初学者第一步: 最近在学习selenium,但是在安装的时候遇到了问题.我是直接在firefox安装的Selenium IDE ,虽然下载安装之后存在于扩展中,但是工具栏里并没有显示 ...
- Oracle数据库报错:索引中丢失 IN 或 OUT 参数
另外,我记得好像以前也有这样的错误发生,当时的错误原因是,参数类型和数据库的类型不匹配引起的. 所以,如果有这种错误发生,应该仔细检查每个字段赋值的地方,检查类型及非空. 也可能是传参数问题,传参数过 ...
- Rookey.Frame v1.0极速开发平台稳定版发布
Rookey.Frame v1.0经过一年时间的修改及沉淀,稳定版终于问世了,此版本经过上线系统验证,各个功能点都经过终端用户验证并持续优化,主要优化以下几个方面: 1.性能较原来提升3倍之多 2.修 ...
- struts2 之 Action的优化配置
总结:struts2种action的配置文件会随着业务的增加而增加,导致配置文件膨胀.struts2中提供了三种方案来解决这个问题: 1. 动态方法调用来实现. 2. 通配符配置来解决. 3. 使用注 ...
- js的break语句,continue语句,return语句
js的break语句,continue语句,return语句. 用的时候很容易混淆,有过一次泪奔的经历. break语句 break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch ...
- 111_climbing-stairs
/*@Copyright:LintCode@Author: Monster__li@Problem: http://www.lintcode.com/problem/climbing-stair ...
- netty——私有协议栈开发案例
netty--私有协议栈开发案例 摘要: 在学习李林峰老师的Netty权威指南中,觉得第十二章<私有协议栈开发>中的案例代码比较有代表性,讲的也不错,但是代码中个人认为有些简单的错误,个人 ...
- python代码零散知识点
1.用python读入csv文件 green_taxi1=pd.DataFrame(pd.read_csv('../../../../MatlabCode/data/green/green_tripd ...
- PHP 安装 Xdebug 扩展(一)
一.前言 1. Xdebug 简介 Xdebug 是一个开放源代码的 PHP 程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况.当前最新版本为 Xdebug 2.5.0 ...