精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32CubeMx配置定時器的編碼器模式

CHANBAEK ? 來源:小李的創(chuàng)客實驗室 ? 作者:小李的創(chuàng)客實驗室 ? 2023-08-21 11:47 ? 次閱讀

STM32CubeMx配置定時器編碼器模式

上次文章寫了編碼器是如何工作的,今天就來用STM32F103C8T6的TIM3的通道1跟通道2編寫一個編碼器識別程序。

編程思路:

A相:TIM3_CH1

B相:TIM3_CH2

SWITCH:PB5(外部中斷的方式)

實現(xiàn)效果:

編碼器順時針旋轉(zhuǎn)編碼器計數(shù)值 +1

編碼器逆時針旋轉(zhuǎn)編碼器計數(shù)值 -1

按下SWITCH編碼器計數(shù)值值清 0

話不多說,上教程

1.配置時鐘

  • 選擇外部高速時鐘源HSE

圖片
在這里插入圖片描述

2.配置SWITCH管腳為外部中斷模式(默認上拉)

  • 選擇中斷模式觸發(fā)下降沿有效
  • 默認是上拉輸入
  • 添加用戶標簽為SWITCH

圖片
在這里插入圖片描述

使能NVIC配置

圖片
在這里插入圖片描述

3.配置定時器管腳為編碼器模式

  • 選擇編碼器模式
  • 分頻值設(shè)置為2-1
  • 計數(shù)值設(shè)置為1
  • 自動重裝載值1
  • 自動重載使能
  • 通道1,2都計數(shù)
  • 都是上升沿有效

圖片
在這里插入圖片描述

4.配置時鐘到72MHz

  • 手動輸入72MHz自動匹配

圖片
在這里插入圖片描述

5.配置工程屬性

  • 填寫工程名字
  • 選擇工程路徑
  • 選擇工程平臺(KEIL MDK)圖片

6.配置工程代碼屬性

  • 拷貝必要的庫文件
  • 單獨形成.c跟.h文件

圖片
在這里插入圖片描述

7.生產(chǎn)工程并添加修改代碼

  • 直接打開工程
  • 修改必要代碼

圖片
在這里插入圖片描述

7.1修改定時器代碼

  • 添加一個自定義結(jié)構(gòu)體
/* USER CODE BEGIN Private defines */

typedefstruct
{
	int Encoder_Val;
	int Encoder_Dir;
}EC11_t;

extern EC11_t EC11;
/* USER CODE END Private defines */

編寫一個中斷回調(diào)函數(shù)

編寫回調(diào)函數(shù)邏輯代碼

/* USER CODE BEGIN 0 */
EC11_t                   EC11;
/* USER CODE END 0 */

/* USER CODE BEGIN 1 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	 uint8_t dir = 0;
	 if(htim == &htim3)
	 {
		 dir =  __HAL_TIM_IS_TIM_COUNTING_DOWN(&htim3);
		 if(dir==1)
		 {
			 EC11.Encoder_Val++;
			 EC11.Encoder_Dir =  1;
		 }
		 if(dir==0)
		 {
			 EC11.Encoder_Val--;
			 EC11.Encoder_Dir = -1;
		 }
	 }
}
/* USER CODE END 1 */

7.2修改外部中斷代碼

添加一個中斷回調(diào)函數(shù)

/* USER CODE BEGIN 1 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
	EC11.Encoder_Val = 0;
}
/* USER CODE END 1 */

7.3修改初始化代碼

/* USER CODE BEGIN TIM3_Init 2 */
	__HAL_TIM_CLEAR_IT(&htim3,TIM_IT_UPDATE);
	HAL_TIM_Encoder_Start(&htim3, TIM_CHANNEL_ALL);
	__HAL_TIM_ENABLE_IT(&htim3,TIM_IT_UPDATE);
  /* USER CODE END TIM3_Init 2 */

8.下載調(diào)試代碼

  • 現(xiàn)象1順時針旋轉(zhuǎn)編碼器值加1

圖片
在這里插入圖片描述

  • 現(xiàn)象2順時針旋轉(zhuǎn)編碼器值減1

圖片
在這里插入圖片描述

  • 按鍵按下編碼器值清零

圖片
在這里插入圖片描述

9.總結(jié)

至此編碼器已經(jīng)全部寫完了。STM32CubeMx的使用比較方便,注意一點就是如果修改代碼盡量寫到英文的注釋中去,這樣即使再重新修改CubeMx配置重新生成代碼也不會改變原來的程序,否則原來的代碼就沒了,別問我咋知道的血淚的教訓(xùn)啊!!!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編碼器
    +關(guān)注

    關(guān)注

    45

    文章

    3592

    瀏覽量

    134145
  • 程序
    +關(guān)注

    關(guān)注

    116

    文章

    3775

    瀏覽量

    80845
  • 旋轉(zhuǎn)編碼器
    +關(guān)注

    關(guān)注

    5

    文章

    158

    瀏覽量

    25947
  • STM32F103C8T6
    +關(guān)注

    關(guān)注

    107

    文章

    160

    瀏覽量

    83223
  • stm32cubemx
    +關(guān)注

    關(guān)注

    5

    文章

    280

    瀏覽量

    14751
收藏 人收藏

    評論

    相關(guān)推薦

    STM32CubeMx入門教程(3):定時器的使用

    導(dǎo)語“ 使用STM32CubeMx 生成初始化定時器代碼,實現(xiàn)定時器特定定時
    發(fā)表于 07-11 15:22 ?3870次閱讀
    <b class='flag-5'>STM32CubeMx</b>入門教程(3):<b class='flag-5'>定時器</b>的使用

    STM32CubeMx入門教程(4):PWM應(yīng)用

    導(dǎo)語“使用STM32CubeMx配置定時器輸出PWM波,生成初始化代碼。”
    發(fā)表于 07-11 15:23 ?2332次閱讀
    <b class='flag-5'>STM32CubeMx</b>入門教程(4):PWM應(yīng)用

    stm32cubemx配置定時器

    stm32cubemx配置定時器,文章目錄前言keil主函數(shù)時鐘配置中斷響應(yīng)CUBE主函數(shù)配置函數(shù)中斷響應(yīng)前言本文主要介紹使用keil和
    發(fā)表于 08-10 07:55

    Stm32CubeMx基本定時器的概念

    Stm32CubeMx基本定時器基本定時器概念Stm32CubeMx 配置基本配置
    發(fā)表于 08-18 08:18

    怎樣利用STM32cubeMX庫去配置編碼器模式

    霍爾編碼器測速原理是什么?怎樣利用STM32cubeMX庫去配置編碼器模式
    發(fā)表于 09-10 07:32

    請問STM32CubeMX配置Encoder模式如何驅(qū)動EC11旋轉(zhuǎn)編碼器

    請問STM32CubeMX配置Encoder模式如何驅(qū)動EC11旋轉(zhuǎn)編碼器
    發(fā)表于 11-18 07:48

    STM32CubeMX環(huán)境配置的相關(guān)資料推薦

    STM32CubeMX-----配置編碼器電機的測速前言一、STM32CubeMX環(huán)境配置1.配置
    發(fā)表于 01-10 08:08

    【MCU】基于STM32CubeMX定時器中斷實現(xiàn)LED閃爍

    基于STM32CubeMX定時器中斷實現(xiàn) LED 閃爍本實驗基于STM32CubeMX實現(xiàn)對STM32開發(fā)板的配置,通過
    發(fā)表于 10-29 11:06 ?20次下載
    【MCU】基于<b class='flag-5'>STM32CubeMX</b><b class='flag-5'>定時器</b>中斷實現(xiàn)LED閃爍

    STM32單片機定時器1設(shè)置成為AB項編碼器模式

    STM32單片機定時器1設(shè)置成為AB項編碼器模式大家好·,我是DXZ,這篇博客是使用STM32單片機定時
    發(fā)表于 11-18 15:21 ?21次下載
    <b class='flag-5'>STM32</b>單片機<b class='flag-5'>定時器</b>1設(shè)置成為AB項<b class='flag-5'>編碼器</b><b class='flag-5'>模式</b>

    STM32CUBEMX配置教程(十二)STM32定時器觸發(fā)的固定頻率ADC采樣(使用DMA)

    STM32CUBEMX配置教程(十二)STM32定時器觸發(fā)的固定頻率ADC采樣(使用DMA)
    發(fā)表于 11-24 13:51 ?85次下載
    <b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>配置</b>教程(十二)<b class='flag-5'>STM32</b>的<b class='flag-5'>定時器</b>觸發(fā)的固定頻率ADC采樣(使用DMA)

    STM32CUBEMX配置教程(十三)STM32定時器觸發(fā)的固定頻率DAC輸出(使用DMA)

    STM32CUBEMX配置教程(十三)STM32定時器觸發(fā)的固定頻率DAC輸出(使用DMA)
    發(fā)表于 11-24 14:06 ?46次下載
    <b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>配置</b>教程(十三)<b class='flag-5'>STM32</b>的<b class='flag-5'>定時器</b>觸發(fā)的固定頻率DAC輸出(使用DMA)

    STM32定時器單脈沖模式及其應(yīng)用

    STM32定時器可以配置為單脈沖模式,所謂的單脈沖就是通過配置定時器使其在一個可控延時后,產(chǎn)生
    發(fā)表于 11-25 11:06 ?64次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>定時器</b>單脈沖<b class='flag-5'>模式</b>及其應(yīng)用

    STM32F407定時器編碼器模式簡介

    STM32F407定時器編碼器模式
    發(fā)表于 03-31 17:14 ?8566次閱讀
    <b class='flag-5'>STM32</b>F407<b class='flag-5'>定時器</b><b class='flag-5'>編碼器</b><b class='flag-5'>模式</b>簡介

    詳解stm32定時器編碼器模式

    增量式編碼器在實際應(yīng)用中還是很常見。stm32定時器帶的也有編碼器模式。所用的編碼器是有ABZ
    的頭像 發(fā)表于 01-19 09:14 ?8889次閱讀
    詳解<b class='flag-5'>stm32</b><b class='flag-5'>定時器</b>的<b class='flag-5'>編碼器</b><b class='flag-5'>模式</b>

    STM32CubeMx定時器編碼器模式基本使用方法

    增量式編碼器在實際應(yīng)用中還是很常見。stm32定時器帶的也有編碼器模式。所用的編碼器是有ABZ
    發(fā)表于 06-01 14:36 ?5661次閱讀
    <b class='flag-5'>STM32CubeMx</b><b class='flag-5'>定時器</b><b class='flag-5'>編碼器</b><b class='flag-5'>模式</b>基本使用方法