在實(shí)驗(yàn)1的電機(jī)驅(qū)動(dòng)基礎(chǔ)上,這里補(bǔ)充編碼器測(cè)速的程序部分
#include "encoder.h"
#include "led.h"
///TIM4 編碼器輸入,TIM4_CH1作A相,TIM4_CH2作B相GPIO_Pin_6|GPIO_Pin_7;
TIM_ICInitTypeDef TIM_ICInitStructure;
void TIM4_Encoder_Init(u16 arr,u16 psc)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);// 使能定時(shí)器時(shí)鐘
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //io口使能使用到的捕獲編碼器AB相借,
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空輸入
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
//推挽輸出 ,IO口速度為50MHz
//初始化TIM4的時(shí)機(jī)單元
TIM_TimeBaseStructure.TIM_Period = 899; //設(shè)置在下一個(gè)更新事件裝入活動(dòng)的自動(dòng)重裝載寄存器周期的值 80K
TIM_TimeBaseStructure.TIM_Prescaler =0; //設(shè)置用來(lái)作為TIMx時(shí)鐘頻率除數(shù)的預(yù)分頻值 不分頻
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //設(shè)置時(shí)鐘分割:TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上計(jì)數(shù)模式
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); //根據(jù)TIM_TimeBaseInitStruct中指定的參數(shù)初始化TIMx的時(shí)間基數(shù)單位
//配置對(duì)應(yīng)寄存器為編碼器接口模式以及配置相關(guān)的輸入捕獲配置
//THE MODE OF ENCODER
TIM_EncoderInterfaceConfig(TIM4, TIM_EncoderMode_TI12,TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);
//TIM_ICPolarity_Rising上升沿捕獲
TIM_ICInitStructure.TIM_Channel = TIM_Channel_1; //CC1S=01 選擇輸入端 IC1映射到TI1上
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //上升沿捕獲
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //映射到TI1上
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; //配置輸入分頻,不分頻
TIM_ICInitStructure.TIM_ICFilter = 0x01;//IC1F=0000 配置輸入濾波器 不濾波
TIM_ICInit(TIM4, &TIM_ICInitStructure);
// Enable the TIM4 Update Interrupt
NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
TIM_ClearFlag(TIM4, TIM_FLAG_Update);
TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);
TIM_SetCounter(TIM4,0);
TIM_Cmd(TIM4, ENABLE); //使能TIM4
}
u8 TIM4CH1_CAPTURE_STA=0; //輸入捕獲狀態(tài)
u16 TIM4CH1_CAPTURE_VAL; //輸入捕獲值
//定時(shí)器4中斷服務(wù)程序
void TIM4_IRQHandler(void)
{
if((TIM4CH1_CAPTURE_STA&0X80)==0)//還未成功捕獲
{
if (TIM_GetITStatus(TIM4, TIM_IT_Update) != RESET)
{
if(TIM4CH1_CAPTURE_STA&0X40)//已經(jīng)捕獲到高電平了
{
if((TIM4CH1_CAPTURE_STA&0X3F)==0X3F)//高電平太長(zhǎng)了
{
TIM4CH1_CAPTURE_STA|=0X80;//標(biāo)記成功捕獲了一次
TIM4CH1_CAPTURE_VAL=0XFFFF;
}else TIM4CH1_CAPTURE_STA++;
}
}
TIM_ClearITPendingBit(TIM4, TIM_IT_Update); //清除中斷標(biāo)志位
}
}
float HF_Get_Encode_TIM4(void)
{
float cnt;
cnt = (float)((uint16_t)0x7fff) - (float)((uint16_t)(TIM4->CNT)) ;
TIM4->CNT = 0x7fff;
return cnt;
}
主函數(shù)如下:
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "pwm.h"
#include "usart.h"
#include "encoder.h"
int main(void)
{
int cnt;
delay_init(); //延時(shí)函數(shù)初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設(shè)置中斷優(yōu)先級(jí)分組2
myusart_init(9600); //串口初始化為9600
LED_Init();//初始化與LED連接的硬件接口
TIM1_PWM_Init(899,0);//不分頻。PWM頻率=72000/(899+1)=80Khz . 電機(jī)的頻率不得小于10K
TIM4_Encoder_Init(9999,72-1);//1s
// HF_Encoder_Init(TIM4,0);
while(1)
{
TIM_SetCompare1(TIM1,600);
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
delay_ms(100);
GPIO_SetBits(GPIOD,GPIO_Pin_2);
delay_ms(100);
cnt=(int)TIM_GetCounter(TIM4);
printf("Position = %d\n\r", cnt);
printf("陳xx最漂亮\r\n");
}
}
上一篇:關(guān)于STM32的編碼器計(jì)數(shù)及溢出處理調(diào)試總結(jié)
下一篇:stm32f2xx與stm32f10x在正交編碼器應(yīng)用定時(shí)器初始化中的區(qū)別
推薦閱讀
史海拾趣
在電子行業(yè)的早期,Cofan Usa Inc公司以其敏銳的市場(chǎng)洞察力和技術(shù)創(chuàng)新能力,成功研發(fā)出一款具有革命性的電子產(chǎn)品,這款產(chǎn)品憑借其出色的性能和用戶體驗(yàn),迅速在市場(chǎng)上獲得認(rèn)可。公司不斷投入研發(fā)資源,持續(xù)推出新產(chǎn)品,逐漸在電子行業(yè)中樹(shù)立起了技術(shù)領(lǐng)先的形象。
隨著技術(shù)的不斷進(jìn)步和市場(chǎng)的變化,EETools意識(shí)到必須不斷創(chuàng)新才能保持競(jìng)爭(zhēng)力。公司投入大量研發(fā)資源,對(duì)嵌入式開(kāi)發(fā)工具進(jìn)行技術(shù)升級(jí)和產(chǎn)品優(yōu)化。經(jīng)過(guò)數(shù)年的努力,EETools成功推出了一系列具有領(lǐng)先技術(shù)的嵌入式開(kāi)發(fā)工具,如高性能的芯片編程器、智能調(diào)試器等。這些產(chǎn)品不僅提高了客戶的工作效率,還降低了成本,贏得了市場(chǎng)的廣泛認(rèn)可。
EETools公司成立于1992年,當(dāng)時(shí)正值微處理器開(kāi)發(fā)工具行業(yè)蓬勃發(fā)展的時(shí)期。公司創(chuàng)始人憑借對(duì)嵌入式系統(tǒng)產(chǎn)品的深刻理解和市場(chǎng)需求的敏銳洞察,決定投身于這一領(lǐng)域。EETools在硅谷的電子和計(jì)算機(jī)行業(yè)中心設(shè)立總部,迅速成為該地區(qū)的一顆新星。
在初創(chuàng)階段,EETools專注于嵌入式系統(tǒng)產(chǎn)品的咨詢和分銷業(yè)務(wù)。通過(guò)與多家知名半導(dǎo)體廠商建立合作關(guān)系,EETools成功將各種高性能的嵌入式系統(tǒng)產(chǎn)品引入市場(chǎng),滿足了客戶多樣化的需求。同時(shí),公司還積極研發(fā)自主品牌的嵌入式開(kāi)發(fā)工具,為客戶提供更為全面和專業(yè)的服務(wù)。
隨著技術(shù)的不斷成熟和市場(chǎng)的逐步認(rèn)可,Astro Tool Corp公司開(kāi)始積極拓展海外市場(chǎng)。通過(guò)與國(guó)際知名電子制造商建立合作伙伴關(guān)系,公司成功將產(chǎn)品打入國(guó)際市場(chǎng)。同時(shí),公司還積極參與國(guó)際行業(yè)展會(huì)和交流活動(dòng),不斷提升品牌知名度和影響力。這些努力不僅為公司帶來(lái)了更多的訂單和合作伙伴,也進(jìn)一步鞏固了其在全球電子制造工具市場(chǎng)的地位。
CEVA公司一直以來(lái)都是無(wú)線連接和智能傳感技術(shù)的領(lǐng)先許可方。公司提供了包括數(shù)字信號(hào)處理器、人工智能處理器、無(wú)線平臺(tái)以及一系列用于傳感器融合、圖像增強(qiáng)、計(jì)算機(jī)視覺(jué)、語(yǔ)音輸入和人工智能的補(bǔ)充軟件。這些技術(shù)和產(chǎn)品使得CEVA在多個(gè)終端市場(chǎng),如移動(dòng)、消費(fèi)、汽車、機(jī)器人、工業(yè)和物聯(lián)網(wǎng)等領(lǐng)域,都能夠提供節(jié)能、智能和互聯(lián)的設(shè)備解決方案。通過(guò)與全球半導(dǎo)體公司和原始設(shè)備制造商的緊密合作,CEVA成功地將這些技術(shù)應(yīng)用于實(shí)際產(chǎn)品中,推動(dòng)了相關(guān)市場(chǎng)的快速發(fā)展。
富士通的故事始于1935年,當(dāng)時(shí)它作為一家電信設(shè)備制造公司在日本成立。在那個(gè)通信技術(shù)剛剛起步的時(shí)代,富士通憑借其創(chuàng)新精神和卓越的技術(shù)實(shí)力,迅速在電信設(shè)備領(lǐng)域嶄露頭角。公司最初專注于電話交換機(jī)的生產(chǎn),隨著技術(shù)的不斷進(jìn)步,富士通逐漸擴(kuò)大了業(yè)務(wù)范圍,為日本的電信基礎(chǔ)設(shè)施建設(shè)做出了重要貢獻(xiàn)。這一階段的成功,為富士通后續(xù)在電子行業(yè)的蓬勃發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ)。
元器件在工作中都有一定程度的發(fā)熱,尤其是功率較大的器件所發(fā)出的熱量會(huì)對(duì)周邊溫度比較敏感的器件產(chǎn)生干擾,若熱干擾得不到很好的抑制,那么整個(gè)電路的電性能就會(huì)發(fā)生變化。 為了對(duì)熱干擾進(jìn)行抑制,可采取以下措施: (1)發(fā)熱元件的放置 ...… 查看全部問(wèn)答∨ |
請(qǐng)問(wèn)如何在帶有TCP/IP的CDMA模塊上實(shí)現(xiàn)MMS的收發(fā)呢?謝謝。 假如模塊帶有TCP/IP,那如何在它之上實(shí)現(xiàn)MMS的收發(fā)呢?調(diào)用打開(kāi)TCP/IP連接的AT命令時(shí),需要提供一個(gè)服務(wù)器IP,請(qǐng)問(wèn)這個(gè)IP怎么獲取呢?還有,這個(gè)IP是指WAP網(wǎng)關(guān)還是mms-relay服務(wù)器?請(qǐng)大概說(shuō)明一下,謝謝。 … 查看全部問(wèn)答∨ |
USB無(wú)線網(wǎng)卡驅(qū)動(dòng)在ARM上的移植問(wèn)題 無(wú)線網(wǎng)卡:wl-167g ARM板:S3C2410 內(nèi)核版本:2.4.18 gcc版本:2.95.3 驅(qū)動(dòng)版本RT73_Linux_STA_Drv1.0.4.0 編譯驅(qū)動(dòng)通過(guò),并生成rt73.o,使用insmod rt73.o可以將模塊加載到系統(tǒng)中,顯示: rtusb init ====> usb.c: registered new driver rt73 ...… 查看全部問(wèn)答∨ |
請(qǐng)大家?guī)臀铱纯催@是什么原因,關(guān)于屬性頁(yè)對(duì)話框的。不勝感激! 我在程序中做了一些屬性頁(yè)對(duì)話框,編譯運(yùn)行都可以通過(guò)。但是每次通過(guò)菜單或是按鈕調(diào)用的時(shí)候,會(huì)彈出一個(gè)警告對(duì)話框:該對(duì)話框的標(biāo)題欄是“Assertion failed!”,下面的內(nèi)容是“工程名:File propdlg.cpp Line602”,然后就是三個(gè)按鈕:“放棄”“重 ...… 查看全部問(wèn)答∨ |
首次跑通Keil自帶STM32的OS例程,發(fā)貼自賀并交作業(yè)(已修改) 由于俺用的是英培特的EMSTM32V1開(kāi)發(fā)板,內(nèi)帶的例程沒(méi)RTX的例程. 只好用keil自帶的例程BLINKY.C,但是LED的管腳不太兼容. 剛好也學(xué)學(xué)GPIO~~~哈哈~~~OS和裸奔的BLINKY都算是跑通了~~~ 郁悶的是串口和ADC沒(méi)跑通~~~不過(guò)串口座(公頭)有些小,估計(jì)是新的 ...… 查看全部問(wèn)答∨ |
收閑置的49元8962套件 ... 有的扔過(guò)來(lái)啊 .... 一套或者光主板也行 自帶價(jià)格 ... tt383@qq.com [ 本帖最后由 tt383 于 2011-3-18 18:03 編輯 ]… 查看全部問(wèn)答∨ |
我接觸DSP較8051系列和arm系列晚,原因無(wú)它,資源少(相對(duì)8051和arm鋪天蓋地的資料和例程來(lái)說(shuō)),價(jià)格貴,一般應(yīng)用也用不上。再加上DSP的一般應(yīng)用項(xiàng)目都是高端的數(shù)字處理和數(shù)碼設(shè)備,久而久之,在我腦海里DSP就好像微處理器里面的貴族一樣,帶著神 ...… 查看全部問(wèn)答∨ |
單片機(jī)驅(qū)動(dòng)藍(lán)牙通信的問(wèn)題 前提:接收單片機(jī)放在開(kāi)發(fā)板上,開(kāi)發(fā)板與電腦相連,接收單片機(jī)同時(shí)連接一個(gè)藍(lán)牙模塊。發(fā)送單片機(jī)通過(guò)藍(lán)牙模塊向接收單片機(jī)發(fā)數(shù)據(jù),控制LED燈亮滅。 問(wèn)題:發(fā)送單片機(jī)發(fā)送的數(shù)據(jù)在電腦上通過(guò)串口助手可以看到,接收單片機(jī)能收到,但是LED燈無(wú)變化。 ...… 查看全部問(wèn)答∨ |
最近在設(shè)計(jì)制作一塊高速AD/DA板,主要器件有250MSPS的AD以及1GSPS的DA,還有一塊較低端的FPGA,原理圖中勢(shì)必有數(shù)字地和模擬地之分。在pcb中采用的sggssggs板層結(jié)構(gòu)設(shè)計(jì)的八層板,第一層和第七層是GND層,這樣問(wèn)題就出現(xiàn)了,這兩個(gè)地平面也就是兩個(gè)G ...… 查看全部問(wèn)答∨ |
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 無(wú)人飛行器機(jī)載穩(wěn)定云臺(tái)控制系統(tǒng)的設(shè)計(jì)
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時(shí)處理器M7000
- 基于HW2181B的航模無(wú)線遙控通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 應(yīng)對(duì)機(jī)器人“四高”,極海推出全球首款雙核Cortex-M52 MCU G32R501
- 非道路移動(dòng)機(jī)械透射式煙度計(jì)研究與實(shí)現(xiàn)
- 基于STM32F103的角磨機(jī)開(kāi)關(guān)磁阻電機(jī)控制器的設(shè)計(jì)
- 基于Cortex-M0智能水溫監(jiān)控系統(tǒng)的優(yōu)化
- STM32 printf重定向(串口輸出)
- 基于STM32H743的仿真轉(zhuǎn)臺(tái)控制器設(shè)計(jì)
- 電池新國(guó)標(biāo),帶來(lái)漲價(jià)潮?
- 2025Q1全球動(dòng)力電池戰(zhàn)報(bào):中國(guó)6企占近7成份額,三星SDI裝機(jī)量跌17%
- 國(guó)產(chǎn)HUD頭部企業(yè)沖刺港股:背靠蔚來(lái)、小米、理想,3年?duì)I收翻倍
- 新能源重卡的智能化核心在哪里?
- 大圓柱電池,卷土重來(lái)
- 智駕暗戰(zhàn):全民智駕降溫,L3如箭在弦|上海車展觀察
- 蔡司智能玻璃技術(shù):車窗變娛樂(lè)屏,12000尼特亮度革新駕駛體驗(yàn)
- 車輛連接的衛(wèi)星之戰(zhàn)
- 兩款熱門 SUV 輔助駕駛大PK,更安全的秘訣是國(guó)產(chǎn)芯片?
- 麻省理工學(xué)院開(kāi)發(fā)出可高速精準(zhǔn)回?fù)舻钠古仪驒C(jī)器人
- DEYISUPPORT:【全新FAQ來(lái)襲】今夏且聽(tīng)風(fēng)吟,你不能錯(cuò)過(guò)的精華!
- 有獎(jiǎng)直播|安森美先進(jìn)的封裝和驅(qū)動(dòng)技術(shù)助力碳化硅能源應(yīng)用
- 免費(fèi)申請(qǐng)Adafruit開(kāi)發(fā)板 |處理器、傳感器、LED、USB一體化設(shè)計(jì)板,功能強(qiáng)大!
- 免費(fèi)申請(qǐng)|Maxim 高性能模擬工具包(內(nèi)含78個(gè)器件)
- elexcon 2024 深圳國(guó)際電子展報(bào)名通道開(kāi)啟!參與贏京東卡!
- 2023 瑞薩電子 MCU/MPU 工業(yè)應(yīng)用技術(shù)研討會(huì)
- 有獎(jiǎng)直播|解鎖汽車電子黑科技 開(kāi)創(chuàng)未來(lái)駕乘新境界
- 有獎(jiǎng)直播報(bào)名:英飛凌智能電機(jī)驅(qū)動(dòng)方案
- 夏末狂歡,觀看TI 課程有好禮!
- 小米獲得高度評(píng)價(jià),入榜“德溫特2018-2019年度全球創(chuàng)新百?gòu)?qiáng)
- OPPO聯(lián)合色彩大師Karim,再推R15星云特別版
- 2019如何玩轉(zhuǎn)人工智能?全球AI大牛給你答案
- 藝術(shù)與科技的完美結(jié)合 OPPO為年輕人帶來(lái)不一樣紅藍(lán)音樂(lè)節(jié)
- 擦窗戶還要什么技巧啊?派個(gè)機(jī)器人不就得了
- 32位MCU異軍突起,8位MCU路在何方
- 智能機(jī)器人發(fā)展現(xiàn)狀及存在的問(wèn)題
- 尖端科研排名出爐,中國(guó)最多
- 科思創(chuàng)動(dòng):察言觀色 知人識(shí)心
- AI芯片戰(zhàn),BAT對(duì)壘FANG 勝算幾何
- 請(qǐng)高人幫我查看下這兩個(gè)程序哪里出錯(cuò)
- 【我與雅特力2】AT32移植threadX以及其牛逼組件GUIX
- 零起點(diǎn)學(xué)習(xí)STM32F107開(kāi)發(fā)第5講( USART的使用)
- wince5開(kāi)發(fā)問(wèn)題:如何獲取PDA存儲(chǔ)卡路徑名
- 求助PT2272的接收問(wèn)題
- 很不錯(cuò)的CCS3.3入門資料
- TI官網(wǎng)不能訪問(wèn)!??
- 大家說(shuō)說(shuō),當(dāng)硬件工程師難度大,還是軟件工程師難度大
- 滑移信號(hào)發(fā)生器
- ST MEMS傳感器開(kāi)版小活動(dòng)頒獎(jiǎng)啦~感謝網(wǎng)友的建議和祝福