STM32CubeMx配置定時(shí)器的編碼器模式
上次文章寫(xiě)了編碼器是如何工作的,今天就來(lái)用STM32F103C8T6的TIM3的通道1跟通道2編寫(xiě)一個(gè)編碼器識(shí)別程序。
編程思路:
A相:TIM3_CH1
B相:TIM3_CH2
SWITCH:PB5(外部中斷的方式)
實(shí)現(xiàn)效果:
編碼器順時(shí)針旋轉(zhuǎn)編碼器計(jì)數(shù)值 +1
編碼器逆時(shí)針旋轉(zhuǎn)編碼器計(jì)數(shù)值 -1
按下SWITCH編碼器計(jì)數(shù)值值清 0
話不多說(shuō),上教程!
1.配置時(shí)鐘
- 選擇外部高速時(shí)鐘源HSE

在這里插入圖片描述
2.配置SWITCH管腳為外部中斷模式(默認(rèn)上拉)
- 選擇中斷模式觸發(fā)下降沿有效
- 默認(rèn)是上拉輸入
- 添加用戶標(biāo)簽為SWITCH

在這里插入圖片描述
使能NVIC配置

在這里插入圖片描述
3.配置定時(shí)器管腳為編碼器模式
- 選擇編碼器模式
- 分頻值設(shè)置為2-1
- 計(jì)數(shù)值設(shè)置為1
- 自動(dòng)重裝載值1
- 自動(dòng)重載使能
- 通道1,2都計(jì)數(shù)
- 都是上升沿有效

在這里插入圖片描述
4.配置時(shí)鐘到72MHz
- 手動(dòng)輸入72MHz自動(dòng)匹配

在這里插入圖片描述
5.配置工程屬性
- 填寫(xiě)工程名字
- 選擇工程路徑
- 選擇工程平臺(tái)(KEIL MDK)

6.配置工程代碼屬性
- 拷貝必要的庫(kù)文件
- 單獨(dú)形成.c跟.h文件

在這里插入圖片描述
7.生產(chǎn)工程并添加修改代碼
- 直接打開(kāi)工程
- 修改必要代碼

在這里插入圖片描述
7.1修改定時(shí)器代碼
- 添加一個(gè)自定義結(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 */
編寫(xiě)一個(gè)中斷回調(diào)函數(shù)
編寫(xiě)回調(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修改外部中斷代碼
添加一個(gè)中斷回調(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順時(shí)針旋轉(zhuǎn)編碼器值加1

在這里插入圖片描述
- 現(xiàn)象2順時(shí)針旋轉(zhuǎn)編碼器值減1

在這里插入圖片描述
- 按鍵按下編碼器值清零

在這里插入圖片描述
9.總結(jié)
至此編碼器已經(jīng)全部寫(xiě)完了。STM32CubeMx的使用比較方便,注意一點(diǎn)就是如果修改代碼盡量寫(xiě)到英文的注釋中去,這樣即使再重新修改CubeMx配置重新生成代碼也不會(huì)改變?cè)瓉?lái)的程序,否則原來(lái)的代碼就沒(méi)了,別問(wèn)我咋知道的血淚的教訓(xùn)?。。?!
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
編碼器
+關(guān)注
關(guān)注
45文章
3961瀏覽量
142763 -
程序
+關(guān)注
關(guān)注
117文章
3846瀏覽量
85280 -
旋轉(zhuǎn)編碼器
+關(guān)注
關(guān)注
5文章
162瀏覽量
27491 -
STM32F103C8T6
+關(guān)注
關(guān)注
113文章
166瀏覽量
88838 -
stm32cubemx
+關(guān)注
關(guān)注
5文章
290瀏覽量
17377
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
STM32CubeMx入門(mén)教程(3):定時(shí)器的使用
導(dǎo)語(yǔ)“ 使用STM32CubeMx 生成初始化定時(shí)器代碼,實(shí)現(xiàn)定時(shí)器特定定時(shí)”
發(fā)表于 07-11 15:22
?7336次閱讀
STM32CubeMx入門(mén)教程(4):PWM應(yīng)用
stm32cubemx配置定時(shí)器
stm32cubemx配置定時(shí)器,文章目錄前言keil主函數(shù)時(shí)鐘配置中斷響應(yīng)CUBE主函數(shù)配置函數(shù)中斷響應(yīng)前言本文主要介紹使用keil和
發(fā)表于 08-10 07:55
請(qǐng)問(wèn)STM32CubeMX配置Encoder模式如何驅(qū)動(dòng)EC11旋轉(zhuǎn)編碼器?
請(qǐng)問(wèn)STM32CubeMX配置Encoder模式如何驅(qū)動(dòng)EC11旋轉(zhuǎn)編碼器?
發(fā)表于 11-18 07:48
STM32CubeMX環(huán)境配置的相關(guān)資料推薦
STM32CubeMX-----配置帶編碼器電機(jī)的測(cè)速前言一、STM32CubeMX環(huán)境配置1.配置
發(fā)表于 01-10 08:08
【MCU】基于STM32CubeMX定時(shí)器中斷實(shí)現(xiàn)LED閃爍
基于STM32CubeMX定時(shí)器中斷實(shí)現(xiàn) LED 閃爍本實(shí)驗(yàn)基于STM32CubeMX實(shí)現(xiàn)對(duì)STM32開(kāi)發(fā)板的配置,通過(guò)
發(fā)表于 10-29 11:06
?20次下載
STM32單片機(jī)定時(shí)器1設(shè)置成為AB項(xiàng)編碼器模式
STM32單片機(jī)定時(shí)器1設(shè)置成為AB項(xiàng)編碼器模式大家好·,我是DXZ,這篇博客是使用STM32單片機(jī)定時(shí)
發(fā)表于 11-18 15:21
?21次下載
STM32CUBEMX配置教程(十二)STM32的定時(shí)器觸發(fā)的固定頻率ADC采樣(使用DMA)
STM32CUBEMX配置教程(十二)STM32的定時(shí)器觸發(fā)的固定頻率ADC采樣(使用DMA)
發(fā)表于 11-24 13:51
?86次下載
STM32CUBEMX配置教程(十三)STM32的定時(shí)器觸發(fā)的固定頻率DAC輸出(使用DMA)
STM32CUBEMX配置教程(十三)STM32的定時(shí)器觸發(fā)的固定頻率DAC輸出(使用DMA)
發(fā)表于 11-24 14:06
?47次下載
STM32定時(shí)器單脈沖模式及其應(yīng)用
STM32的定時(shí)器可以配置為單脈沖模式,所謂的單脈沖就是通過(guò)配置定時(shí)器使其在一個(gè)可控延時(shí)后,產(chǎn)生
發(fā)表于 11-25 11:06
?65次下載
STM32CubeMx定時(shí)器編碼器模式基本使用方法
增量式編碼器在實(shí)際應(yīng)用中還是很常見(jiàn)。stm32的定時(shí)器帶的也有編碼器模式。所用的編碼器是有ABZ
發(fā)表于 06-01 14:36
?7407次閱讀
STM32CubeMx配置定時(shí)器的編碼器模式
評(píng)論