参考的,淘宝上买来的步进电机S曲线驱动方法,发现

他程序输出的PWM波形全是方波,  占空比为50%

而且他

修改这两个数来输出波形,所以

我打算参考这个来写一个驱动

TIMX_CNT中放置的是当前计数值

即为:

修改计数器的计数值  ARR   和CNT

如下是修改后的  产生一个  50us高电平  100us低电平的程序

the flowing code is the timer3's init  pro

 1 //通用定时器3中断初始化
2 //这里时钟选择为APB1的2倍,而APB1为36M
3 // Tout =( (arr+1)*(psc+1) )/Ft us
4 //arr:自动重装值。
5 //psc:时钟预分频数
6 //这里使用的是定时器3!
7 void TIM3_Int_Init(u16 arr,u16 psc)
8 {
9 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure ;
10 NVIC_InitTypeDef NVIC_InitStructure;
11
12 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能
13
14 //定时器TIM3初始化
15 TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值
16 TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值
17 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim
18 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式
19 TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位
20
21 TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //使能指定的TIM3中断,允许更新中断
22
23 //中断优先级NVIC设置
24 NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3中断
25 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //先占优先级0级
26 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //从优先级3级
27 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
28 NVIC_Init(&NVIC_InitStructure); //初始化NVIC寄存器
29
30
31 TIM_Cmd(TIM3, ENABLE); //使能TIMx
32 }

the  fllowing code is the  TIM3_IRQHandler

 1 //中断服务程序
2 void TIM3_IRQHandler(void) //TIM3中断
3 {
4 if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查TIM3更新中断发生与否
5 {
6 TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //清除TIMx更新中断标志
7 //LED1=!LED1;
8 //LED0=!LED0;
9 //CLK=!CLK;
10 //GPIO_SetBits(GPIOB,GPIO_Pin_5);
11
12 // if(MyPwmChangeFlag==0)// if is 0 do low process
13 // {
14 // GPIO_ResetBits(GPIOB,GPIO_Pin_5);
15 // TIM3_Int_Init(MyPwmPeriod-MyPwmHigh-1,72-1);
16 // TIM_Cmd(TIM3, ENABLE); //使能TIMx
17 // MyPwmChangeFlag=1;
18 // }
19 // else if(MyPwmChangeFlag==1)
20 // {
21 // GPIO_SetBits(GPIOB,GPIO_Pin_5);
22 // TIM3_Int_Init(MyPwmHigh-1,72-1);
23 // TIM_Cmd(TIM3, ENABLE); //使能TIMx
24 // MyPwmChangeFlag=0;
25 // }
26 CLK=~CLK;
27 if(MyPwmChangeFlag)
28 {
29 TIM3->ARR=99;
30 TIM3->CNT=0;
31 MyPwmChangeFlag=0;
32 }
33 else
34 {
35 TIM3->ARR=49;
36 TIM3->CNT=0;
37 MyPwmChangeFlag=1;
38 }
39
40
41 }
42 }

关于步进电机驱动板,tb6560的更多相关文章

  1. TB6560步进电机驱动板

    极客工坊比较好的帖子: 关于驱动板的共阴极和共阳极接法 http://www.geek-workshop.com/thread-12695-1-1.html

  2. FPGA Verilog HDL 系列实例--------步进电机驱动控制

    [连载] FPGA Verilog HDL 系列实例 Verilog HDL 之 步进电机驱动控制 步进电机的用途还是非常广泛的,目前打印机,绘图仪,机器人等等设备都以步进电机为动力核心.那么,下面我 ...

  3. MOS管、PCB、H桥、步进电机驱动电路、51单片机的IO口驱动能力、灌电流、拉电流、上拉电阻的选择

    嵌入式开发PCB设计几点体会(转载):http://bbs.ednchina.com/BLOG_ARTICLE_3021801.HTMCollector-Emitter Saturation Volt ...

  4. TB6560电机驱动器参数设置

    TB6560电机驱动器参数设置 最近接触了一些步进电机的开发,整理了一些参数设置的经验,希望能帮助到有需要的人儿~ 步进电机主要按一定的给电规律,给对应的绕组响应的电信号,电机将按一定的方向运行,而且 ...

  5. [MicroPython]TurniBit开发板DIY自动窗帘模拟系统

    一.准备工作 üTurnipBit 开发板 一块 ü下载数据线 一条 ü微型步进电机(28BYJ-48) 一个 ü步进电机驱动板(ULN2003APG) 一块 ü光敏传感器 一个 üTurnipBit ...

  6. [Arduino] Arduino猪头笔记

    1. 步进电机驱动 今天才发现....原来在不同的步进电机驱动模块里面,循环时钟是不一样的.... 步进电机驱动模块以及电路配置: 驱动代码的主要部分: int sp_param = 16383; d ...

  7. 简易排水简车的制作 TurnipBit 系列教程

    准备工作   ü TurnipBit 开发板 1块 ü 下载数据线 1条 ü 微型步进电机(28BYJ-48) 1个 ü 步进电机驱动板(ULN2003APG) 1块 ü TurnipBit 扩展板 ...

  8. TPYBoard v102 驱动28BYJ-48步进电机

    TPYBoard v102 驱动28BYJ-48步进电机 实验目的 了解步进电机的工作原理 学习步进电机的驱动方法 实验器材 TPYBoard v102 1块 微型步进电机(28BYJ-48) 1个 ...

  9. RAMPS1.4 3d打印控制板接线与测试

    “工欲善其事,必先利其器”,在开始工作之前,你应该准备下面所说的工具(包括软件和硬件). 1.需要下载的软件 1.1 固件上传工具——Arduino IDE 这是上传固件的必备工具,有了这个软件让上传 ...

随机推荐

  1. 使用Tensorflow Object Detection进行训练和推理

    整体流程(以PASCAL VOC为例) 1.下载PASCAL VOC2012数据集,并将数据集转为tfrecord格式 2.选择并下载预训练模型 3.配置训练文件configuration(所有的训练 ...

  2. 拓扑排序详解(梅开二度之dfs版按字典序输出拓扑路径+dfs版输出全部拓扑路径

    什么是拓扑排序? 先穿袜子再穿鞋,先当孙子再当爷.这就是拓扑排序! 拓扑排序说白了其实不太算是一种排序算法,但又像是一种排序(我是不是说了个废话qwq) 他其实是一个有向无环图(DAG, Direct ...

  3. 博客之初体验-----python初了解

    ---恢复内容开始--- 1.python2.x与python3.x的区别 (1) 2.x的默认编码是ASSIC码,不支持中文 (2) 3.x的默认编码是UNICODE,支持中文 (3) 2.x版本与 ...

  4. Android埋点技术概览

    注:本文同步发布于微信公众号:stringwu的互联网杂谈Android无埋点技术概览 本文是Android无埋点系列的开篇---埋点技术概览 1 背景 埋点是数据产品经理(分析师)基于业务需求,对用 ...

  5. 2-7 Java基础数据类型之字符型

    代码中输入如下部分: /* char的取值范围0-65535 */ public class DataType06 { public static void main(String[]args){ c ...

  6. 【目录】python全栈工程师

    第一阶段:Python 语言核心编程1. Python核心   -- 2048 游戏核心算法2. 面向对象   -- 天龙八部游戏技能系统3. Python高级   -- 集成操作框架项目:2048游 ...

  7. 功能:Java注解的介绍和反射使用

    功能:Java注解的介绍和反射使用 一.注解 1.注解介绍 java注解(Annotation),又称为java标注,是jdk5.0引入的一种机制. Java 语言中的类.方法.变量.参数和包等都可以 ...

  8. Android最新敲诈者病毒分析及解锁

    一.情况简介 从去年开始PC端的敲诈者类病毒在不断的爆发,今年年初的时候手机上也开始出现了敲诈者之类的病毒,对这类病毒很无语也是趋势,因为很多时候病毒的产生是和金钱利益相关的.前天去吾爱破解论坛病毒样 ...

  9. hdu3018 一笔画问题

    题意:       给你一幅画,这幅画由点和边构成,问你最少几笔能把这幅画画完. 思路:      这个题目的结论比较巧妙,首先我们考虑下,如果给的图是欧拉图,或者是条欧拉回路,那么我们一笔就搞定了, ...

  10. 逆向 stdio.h 函数库 fseek 函数(调试版本)

    0x01 fseek 函数 函数原型:int fseek(FILE *stream, long int offset, int whence) 函数功能:设置流 stream 的文件位置为给定的偏移 ...