STM32的编码器开发设置笔记

发布者:美梦小狮子最新更新时间:2018-09-16 来源: eefocus关键字:STM32  编码器  开发设置 手机看文章 扫描二维码
随时随地手机看文章

在这里使用TIM3的通道1和通道2做为A B项的电平捕捉。

由于STM32自带硬件编码器接口,因此只要设置好就可使用,非常强大,下面程序测试通过。

void TIM3_Mode_Config(void)  

{  

    //u16 CCR1_Val = 2500;  

    //u16 CCR2_Val = 1000;  

    GPIO_InitTypeDef GPIO_InitStructure;  

  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;  

    TIM_ICInitTypeDef TIM_ICInitStructure;  

    //TIM_OCInitTypeDef  TIM_OCInitStructure;  

      

/*----------------------------------------------------------------*/  

      

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);  

    

      

  GPIO_StructInit(&GPIO_InitStructure);  

  /* Configure PA.06,07 as encoder input */  

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;  

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  

  GPIO_Init(GPIOA, &GPIO_InitStructure);  

      

/*----------------------------------------------------------------*/      

  

      

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //使能TIM3  

    TIM_DeInit(TIM3);  

    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);  

      

  TIM_TimeBaseStructure.TIM_Period =0xffff;       //  

  TIM_TimeBaseStructure.TIM_Prescaler =0;       //设置预分频:  

  TIM_TimeBaseStructure.TIM_ClockDivision =TIM_CKD_DIV1 ;   //设置时钟分频系数:不分频  

  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上计数模式  

  //TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_CenterAligned1;   

    /*初始化TIM2定时器 */  

  TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);  

      

    /*-----------------------------------------------------------------*/  

    //编码配置                        编码模式  

    TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI12,   

                             TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);  //TIM_ICPolarity_Rising上升沿捕获  

  TIM_ICStructInit(&TIM_ICInitStructure);  

  TIM_ICInitStructure.TIM_ICFilter = 6;         //比较滤波器  

  TIM_ICInit(TIM3, &TIM_ICInitStructure);  

    

    //TIM_ARRPreloadConfig(TIM3, ENABLE);  

 // Clear all pending interrupts  

  TIM_ClearFlag(TIM3, TIM_FLAG_Update);  

  TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);   //使能中断  

  //Reset counter  

  TIM3->CNT =0;  

      

      

    TIM_Cmd(TIM3, ENABLE);   //使能定时器3  

}  

void TIM_Init(void)  

{  

  TIM3_Mode_Config();  

}  



在主程序中通过串口定时发送。

[cpp] view plain copy

int main(void)  

{  

  SystemInit();// 72m时钟  

  SysTick_Init();  

    TIM_Init();  

    NVIC_Config();  

    GPIO_74HC595_Config();  

  while (1)  

  {  

        encoder_num=TIM_GetCounter(TIM3);  

        

          

    //  dis_595(encoder_num,encoder_num);  

          

  }  

}  


关键字:STM32  编码器  开发设置 引用地址:STM32的编码器开发设置笔记

上一篇:STM32F107高级定时器TIM1使用 增量编码器接口配置
下一篇:STM32编码器的接口模式

推荐阅读最新更新时间:2024-03-16 16:14

stm32专题十四:存储器介绍
存储器通常分为易失性存储器(RAM - random access memory)和非易失性存储器(ROM - read only memory) 易失性存储器 SRAM:Static Random Access Memory(静态随机存储器),基本的存储单元由SR锁存器组成,不需要定时刷新。 DRAM:Dynamic Random Access Memory(静态随机存储器),由电容和晶体管组成,结构非常简单。动态随机存储器 DRAM 的存储单元以电容的电荷来表示数据,有电荷代表 1,无电荷代表 0。但时间一长,代表 1 的电容会放电,代表 0 的电容会吸收电荷,因此它需要定期刷新操作。刷新操作会对电容进行检查,若电
[单片机]
<font color='red'>stm32</font>专题十四:存储器介绍
STM32 EXTI外部中断
外部中断引脚配置初始化:以PA0为例说明 1、外设端口时钟打开 RCC- APB2ENR|=1 2; //使能PORTA时钟 2、端口设置为输入 GPIOA- CRL&=0XFFFFFFF0;//PA0设置成输入 GPIOA- CRL|=0X00000008; 3、端口选择上拉/下拉方式 GPIOA- ODR&=0xFFFFFFFE; //A0默认下拉 4、中断触发方式选择 Ex_NVIC_Config(GPIO_A,0,RTIR); //上升沿触发 5、嵌套向量中断控制(抢占优先级,响应优先级,组) MY_NVIC_Init(2,2,EXTI0_IRQChannel,2); //抢占2,子优先级2,组2
[单片机]
STM32单片机串口一键下载电路与操作方法详解
STM32三种启动模式对应的存储介质均是芯片内置的,它们是: 1)用户闪存 = 芯片内置的Flash。 2)SRAM = 芯片内置的RAM区,就是内存啦。 3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。 要了解STM32的几种启动模式. BOOT0接GND,BOOT1接GND.那就是正常的启动模式,从flash加载代码. 而BOOT0接V3.3,BOOT1接GND.则是ISP模式,也就是串口更新代码. 其次,你要了解STM32 ISP下载代码的过程. 首先BOOT0接V3.3,然
[单片机]
<font color='red'>STM32</font>单片机串口一键下载电路与操作方法详解
STM32系统学习——I2C (读写EEPROM)
I2C 通讯协议(Inter-Integrated Circuit)引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。 在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32 标准库则是在寄存器与用户代码之间的软件层。对于通讯协议,我们也以分层的方式来理解,最基本的是把它分为物理层和协议层。 物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。简单来说物理层规定我们用嘴巴还是用肢体来交流,协议层则规定我们用中
[单片机]
<font color='red'>STM32</font>系统学习——I2C (读写EEPROM)
STM32中的SPI总线介绍
SPI总线概述 SPI总线介绍 SPI是由摩托罗拉(Motorola)公司开发的全双工同步串行总线,是微处理控制单元(MCU)和外围设备之间进行通信的同步串行端口。主要应用在EEPROM、Flash、实时时钟(RTC)、数模转换器(ADC)、网络控制器、MCU、数字信号处理器(DSP)以及数字信号解码器之间。 SPI总线接口和物理拓扑结构 接口: 五线制接口(四线SPI):全双工 MOSI(主出从入)、MISO(主入从出)、SCK、CS、GND 四线制接口(三线SPI):半双工 IO(双向通信数据线)、SCK、CS、GND 物理拓扑结构:支持一主多从,依靠片选线区分从设备,每增加一个从设备就要增加一个片选线,消耗一个IO口。
[单片机]
<font color='red'>STM32</font>中的SPI总线介绍
STM32启动BOOT0 BOOT1设置方法
不同的下载方式对应STM32启动方式也不同,如下图是STM32三种启动方式: ● 第一种启动方式是最常用的用户FLASH启动,正常工作就在这种模式下,STM32的FLASH可以擦出10万次,所以不用担心 芯片 哪天会被擦爆! ● 第二种启动方式是系统存储器启动方式,即我们常说的串口下载方式(ISP),不建议使用这种,速度比较慢。STM32 中自带的BootLoader就是在这种启动方式中,如果出现程序硬件错误的话可以切换BOOT0/1到该模式下重新烧写Flash即可恢复正常。 ● 第三种启动方式是STM32内嵌的SRAM启动。该模式用于调试。 在使用 开发板 时不小心下载了个有问题的程序,然后就悲剧了。无法往芯片中
[单片机]
<font color='red'>STM32</font>启动BOOT0 BOOT1<font color='red'>设置</font>方法
STM32待机模式学习笔记
STM32内置低功耗模式,在系统或电源复位之后,微控制器处于运行状态,当CPU不需要继续运行时,可以利用多种低功耗模式来节省功耗。例如,等待某个外部事件,用户需要更具最低电源功耗,最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。 STM32F10xxx有三种低功耗模式: ●睡眠模式(Cortex™-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统时 钟(SysTick)等仍在运行) 。 ●停止模式(所有的时钟都已停止) ●待机模式(1.8V电源关闭) 此外,在运行模式下,可以通过以下方式中的一种降低功耗: ●降低系统时钟 ●关闭APB和AHB总线上未被使用的外设时
[单片机]
<font color='red'>STM32</font>待机模式学习笔记
STM32窗口看门狗详解
本文将介绍窗口看门狗,并通过按键模拟触发程序死机、进而触发提前唤醒中断、并复位程序。 ①窗口看门狗介绍 ②STM32CUBEMX配置工程文件 ③代码实现 ①窗口看门狗介绍 窗口看门狗用来监测由于不可预知的因素或者不可预知的逻辑条件导致程序脱离正常运行序列的软件故障。 窗口看门狗介绍之工作原理框图: 窗口看门狗介绍之配置寄存器: 预分频器用于将RCC传来的PCLK1时钟进行分频,配置寄存器中第7位第8位用来存放预分频器的预分频值,第0位至第6位用于存放窗口看门狗的窗口值,当计数器的值大于窗口值时喂狗会触发复位、即只有计数器的值在0x40与窗口值之间时喂狗不会触发程序复位;所以窗口值需要大于0x40、小于0x7f,否则窗口没有
[单片机]
<font color='red'>STM32</font>窗口看门狗详解
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved