找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6308|回复: 2
收起左侧

基于STM32开发简易运动控制卡

[复制链接]
ID:228912 发表于 2017-8-23 10:44 | 显示全部楼层 |阅读模式
基于STM32开发简易运动控制卡
开发者:JasonLin 日期:2014/8/2  
STM32定时器功能介绍
  
定时器
  
  
计数分辨率
  
  
计数类型
  
  
预分频系数
  
  
DMA请求
  
  
捕获/比较通道
  
  
编码器
  
接口
  
  
PWM
  
生成
  
  
TIM1
  
  
16
  
  
up/down
  
/both
  
  
1-65536
  
  
yes
  
  
4
  
  
yes
  
  
yes
  
  
TIM8
  
  
16
  
  
up/down
  
/both
  
  
1-65536
  
  
yes
  
  
4
  
  
yes
  
  
yes
  
  
TIM2
  
  
16
  
  
up/down
  
/both
  
  
1-65536
  
  
yes
  
  
4
  
  
yes
  
  
yes
  
  
TIM3
  
  
16
  
  
up/down/
  
both
  
  
1-65536
  
  
yes
  
  
4
  
  
yes
  
  
yes
  
  
TIM4
  
  
16
  
  
up/down
  
/both
  
  
1-65536
  
  
yes
  
  
4
  
  
yes
  
  
yes
  
  
TIM5
  
  
16
  
  
up/down
  
/both
  
  
1-65536
  
  
yes
  
  
4
  
  
yes
  
  
yes
  
  
TIM6
  
  
16
  
  
up
  
  
1-65536
  
  
yes
  
  
0
  
  
no
  
  
no
  
  
TIM7
  
  
16
  
  
up
  
  
1-65536
  
  
yes
  
  
0
  
  
no
  
  
no
  
TIM1TIM8为高级定时器
TIM6TIM7为基本定时器
TIM2TIM3TIM4TIM5为通用定时器
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
STM32定时器的通道/引脚分配
  
定时器
  
  
TIM1
  
  
TIM2
  
  
TIM3
  
  
TIM4
  
  
TIM5
  
  
TIM8
  
  
CH1引脚
  
  
PA8
  
  
PA0
  
  
PA6
  
  
PB6
  
  
PA0
  
  
PC6
  
  
CH2引脚
  
  
PA9
  
  
PA1
  
  
PA7
  
  
PB7
  
  
PA1
  
  
PC7
  
  
CH3引脚
  
  
PA10
  
  
PA2
  
  
PB0
  
  
PB8
  
  
PA2
  
  
PC8
  
  
CH4引脚
  
  
PA11
  
  
PA3
  
  
PB1
  
  
PB9
  
  
PA3
  
  
PC9
  
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
STM32定时器的通道/引脚重映射
file:///Z:\TEMP\msohtmlclip1\01\clip_image002.jpg
file:///Z:\TEMP\msohtmlclip1\01\clip_image004.jpg
file:///Z:\TEMP\msohtmlclip1\01\clip_image006.jpg
file:///Z:\TEMP\msohtmlclip1\01\clip_image008.jpg
file:///Z:\TEMP\msohtmlclip1\01\clip_image010.jpg
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TIM1TIM8定时器的功能包括:
16位向上、向下、向上/下自动装载计数器
16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为165535之间的任意数值
4个独立通道: 输入捕获 输出比较 PWM生成(边缘或中间对齐模式) 单脉冲模式输出  
死区时间可编程的互补输出
使用外部信号控制定时器和定时器互联的同步电路  
允许在指定数目的计数器周期之后更新定时器寄存器的重复计数器  
刹车输入信号可以将定时器输出信号置于复位状态或者一个已知状态
如下事件发生时产生中断/DMA 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) 输入捕获 输出比较 刹车信号输入  
支持针对定位的增量(正交)编码器和霍尔传感器电路  
触发输入作为外部时钟或者按周期的电流管理
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TIM2TIM3TIM4TIM5定时器功能包括:  
● 16
位向上、向下、向上/向下自动装载计数器  
● 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为165536之间的任意数值  
● 4个独立通道:输入捕获输出比较 ─ PWM生成(边缘或中间对齐模式)─ 单脉冲模式输出  
使用外部信号控制定时器和定时器互连的同步电路  
如下事件发生时产生中断/DMA更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) ─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) ─ 输入捕获输出比较  
支持针对定位的增量(正交)编码器和霍尔传感器电路  
触发输入作为外部时钟或者按周期的电流管理 165536之间的任意数值  
使用外部信号控制定时器和定时器互连的同步电路  
触发输入作为外部时钟或者按周期的电流管理
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TIM6TIM7定时器的主要功能包括:   
● 16位自动重装载累加计数器  
● 16位可编程(可实时修改)预分频器,用于对输入的时钟按系数为165536之间的任意数值分频  
触发DAC的同步电路   :此项是TIM6/7独有功能
在更新事件(计数器溢出)时产生中断/DMA请求
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
开发目标1TIM14个通道生成PWMCH1PWM1  CH2PWM2  
                                     CH3PWM3  CH4PWM4
           TIM84个通道生成PWMCH1PWM5  CH2PWM6  
                                      CH3PWM7  CH4PWM8
注:PWM1PWM2 为一组,控制直流减速电机1
PWM3PWM4 为一组,控制直流减速电机2
PWM5PWM6 为一组,控制直流减速电机3
PWM7PWM8 为一组,控制直流减速电机4
PWM1PWM3PWM5PWM7作为电机正向脉冲输出,占空比为万分比)
PWM2PWM4PWM6PWM8作为电机反向脉冲输出,占空比为万分比)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
开发目标2TIM7作为定时器中断,产生固定的时间间隔,便于计算电机及落地码盘的速度(单位时间间隔脉冲增量)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
开发目标3TIM2TIM3TIM4TIM5作为编码器接口,读取编码器的旋转产生的脉冲数
TIM2CH1作为编码器1A相的输入,CH2作为编码器1B相的输入
TIM3CH1作为编码器2A相的输入,CH2作为编码器2B相的输入
TIM4CH1作为编码器3A相的输入,CH2作为编码器3B相的输入
TIM5CH1作为编码器4A相的输入,CH2作为编码器4B相的输入
(由于TIM2TIM5CH1CH2共用引脚PA0PA1,所以需要把TIM2
CH1CH2重映射到引脚PA15PB3)
(PA15PB3JTAG接口中的两只引脚 ,重映射前先把JTAG口关闭
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE)//关闭JTAG
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, DISABLE)//打开JTAG
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable ,ENABLE);//关闭JTAG
同时打开SWD
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
开发目标42.3TFT液晶显示屏显示电机或码盘的速度(单位时间间隔的脉冲增量)和码盘脉冲总数
未完待续、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

基于战舰STM32开发简易运动控制卡.doc

189 KB, 下载次数: 42, 下载积分: 黑币 -5

直流电机

评分

参与人数 1黑币 +8 收起 理由
菜鸡一只314159 + 8 很给力!

查看全部评分

回复

使用道具 举报

ID:360698 发表于 2018-6-28 00:29 | 显示全部楼层
我是一楼??
回复

使用道具 举报

ID:466908 发表于 2019-1-21 13:13 | 显示全部楼层
配置jtag引脚PA15和PB3后面还要加
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
使能引脚复用时钟
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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