電子工程網(wǎng)

標題: STM32編碼器接口模式--寄存器版 (轉) [打印本頁(yè)]

作者: fuqing5542    時(shí)間: 2012-9-12 09:45
標題: STM32編碼器接口模式--寄存器版 (轉)

STM32編碼器接口模式--寄存器版
已測試通過(guò),如果不能使用,那可能就是編碼器信號干擾比較大。
void Encoder_Init(void)
{
/* TIM3 clock source enable */
RCC->APB1ENR|=1<<1;       //TIM3時(shí)鐘使能
/* Enable GPIOA, clock */
RCC->APB2ENR|=1<<2;    //使能PORTA時(shí)鐘

/* Configure PA.06,07 as encoder input */
GPIOA->CRL&=0XF0FFFFFF;//PA6
GPIOA->CRL|=0X04000000;//浮空輸入
GPIOA->CRL&=0X0FFFFFFF;//PA7
GPIOA->CRL|=0X40000000;//浮空輸入

/* Enable the TIM3 Update Interrupt */
//這兩個(gè)東東要同時(shí)設置才可以使用中斷
TIM3->DIER|=1<<0;   //允許更新中斷   
TIM3->DIER|=1<<6;   //允許觸發(fā)中斷
MY_NVIC_Init(1,3,TIM3_IRQChannel,2);

/* Timer configuration in Encoder mode */
TIM3->PSC = 0x0;//預分頻器
TIM3->ARR = ENCODER_TIM_PERIOD-1;//設定計數器自動(dòng)重裝值
TIM3->CR1 &=~(3<<8);// 選擇時(shí)鐘分頻:不分頻
TIM3->CR1 &=~(3<<5);// 選擇計數模式:邊沿對齊模式
  
TIM3->CCMR1 |= 1<<0; //CC1S='01' IC1FP1映射到TI1
TIM3->CCMR1 |= 1<<8; //CC2S='01' IC2FP2映射到TI2
TIM3->CCER &= ~(1<<1); //CC1P='0' IC1FP1不反相,IC1FP1=TI1
TIM3->CCER &= ~(1<<5); //CC2P='0' IC2FP2不反相,IC2FP2=TI2
TIM3->CCMR1 |= 3<<4; // IC1F='1000' 輸入捕獲1濾波器
TIM3->SMCR |= 3<<0; //SMS='011' 所有的輸入均在上升沿和下降沿有效
TIM3->CNT = COUNTER_RESET;
TIM3->CR1 |= 0x01;    //CEN=1,使能定時(shí)器
}
專(zhuān)營(yíng)STM8/32
QQ 940436962
http://y-ec.taobao.com
銀洋出品 必是精品
ST專(zhuān)業(yè)代理
STM32正交編碼器程序.zip (950.75 KB)


作者: fuqing5542    時(shí)間: 2012-10-8 15:31
嗯嗯嗯......大家頂起來(lái)撒
作者: fuqing5542    時(shí)間: 2012-10-11 11:53
沒(méi)人需要嗎
作者: fuqing5542    時(shí)間: 2012-10-15 11:29
沒(méi)有一點(diǎn)防備
作者: fuqing5542    時(shí)間: 2012-10-22 11:35

作者: fenchen    時(shí)間: 2012-10-24 09:39
mark
作者: bosilangjiu    時(shí)間: 2012-10-26 09:33
看看
作者: fuqing5542    時(shí)間: 2012-10-30 11:31
必須的嘛
作者: fuqing5542    時(shí)間: 2012-10-30 11:33
親愛(ài)的頂起來(lái)
作者: lianfutiana    時(shí)間: 2012-11-22 14:04
mark

作者: ham56    時(shí)間: 2016-11-25 22:09
謝謝分享,正好用到。




歡迎光臨 電子工程網(wǎng) (http://selenalain.com/) Powered by Discuz! X3.4
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页