MM32外部時鐘脈衝計數

2021-10-13 23:23:58 字數 1937 閱讀 2241

gpio_inittypedef gpio_initstructure;

tim_timebaseinittypedef tim_timebasestructure;

//使能時鐘

rcc_ahbperiphclockcmd(rcc_ahbperiph_gpiod, enable); // 使能gpiod時鐘

//引腳初始化

gpio_initstructure.gpio_pin = gpio_pin_6; //pa6 清除之前設定

gpio_initstructure.gpio_mode = gpio_mode_floating; //pd6浮空輸入

gpio_init(gpiod,&gpio_initstructure);

gpio_pinafconfig(gpiod, gpio_pinsource6, gpio_af_1); //管腳復用af1

//計數模式

rcc_apb1periphclockcmd(rcc_apb1periph_tim3, enable); //使能tim3時鐘

tim_deinit(tim3);

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向上計數模式

tim_timebaseinit(tim3, &tim_timebasestructure); //根據tim_timebaseinitstruct中指定的引數初始化timx的時間基數單位

//外部時鐘源設定

tim_itrxexternalclockconfig(tim3,tim_ts_etrf); //配置外部觸發,否則不會計數

tim_etrclockmode2config(tim3, tim_exttrgpsc_off, tim_exttrgpolarity_noninverted, 0);

tim_setcounter(tim3, 0);

tim_cmd(tim3,enable); //使能定時器

/*******方向引腳初始化********/

gpio_init(d5,gpi_fl,gpio_low);**片`

到這裡,再呼叫獲取計數器值函式就可以完成對於外部脈衝的計數了,不過很可惜,再花費很長時間調出來之後,我們不用1024編碼器了。不過從這次調脈衝計數的過程之中,學會了怎麼去看晶元手冊,我覺得我從中受益匪淺。

靈動微MM32F013x晶元學習 MCO時鐘輸出

我們在配置mcu時鐘時,為了驗證配置結果是否正確,可以通過mco這個引腳檢視時鐘頻率。很多晶元都有這個引腳的,之前使用nxp晶元時,也有這個引腳。下面說一下mm32f013x的mco使用。我這裡的時鐘配置時內部rc時鐘經過內部pll倍頻到72m,時鐘配置忽略,只說mco輸出配置.1,mco輸出選擇 ...

STM32時鐘,外部16M設定

一般的時鐘設定是外部8m的時鐘,但是當設定為外部16m的時候,需要配置如下 1 stm32f103xx的晶元,在stm32f10x.h庫中修改大概119行的hse value 為16000000 自帶的是8000000 然後在system stm32f10x.c中設定,大概在1054行,位於sets...

STM32外部中斷

一 基本概念 arm coetex m3核心共支援256個中斷,其中16個內部中斷,240個外部中斷和可程式設計的256級中斷優先順序的設定。stm32目前支援的中斷共84個 16個內部 68個外部 還有16級可程式設計的中斷優先順序的設定,僅使用中斷優先順序設定8bit中的高4位。stm32可支援...