娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年03月13日(星期四)

正在發生

2019年03月13日 | 關于STM32精準采頻率的實現

發布者:平靜的33號 來源: eefocus關鍵字:STM32  精準采頻率 手機看文章 掃描二維碼
隨時隨地手機看文章

這次做訓練題遇到了采頻率的問題,做單項并網問題,需要實時了解頻率的相關信息。 


嘗試直接用他們提供的輸入捕獲,發現并不是很好用,琢磨了半天,實現了自己的部分采用。 


這里就不一步一步的分析了,估計看的情況也比較少。 


直接上手,不過,博主是從正點原子那里直接得到的庫里面查找的信息。 


一般定時器的配置


pwm_in_mode.h文件

這里介紹了兩個配置函數


#ifndef __TIMER_H

#define __TIMER_H

#include "stm32f4xx.h"


void TIM2_CH2_Cap_Init(void);

void TIM2_IRQHandler(void);


#endif


看自己的愛好,我這里把一般的(u16 arr,u16 psc)省略到里面去了,大家可以直接改掉也行,加在函數頭里面傳參。


pwm_in_mode.c文件

有幾種模式,大家可以直接抄過去


時間設定初始化

TIM_ICInitTypeDef  TIM_ICInitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE); 


TIM_TimeBaseStructure.TIM_Prescaler=84-1;                       

TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; 

TIM_TimeBaseStructure.TIM_Period=0xffffffff;//對應下面                         

TIM_TimeBaseStructure.TIM_ClockDivision =TIM_CKD_DIV1;

TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);


引腳初始化

GPIO_InitTypeDef GPIO_InitStructure;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); 


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //GPIOA1      

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; 

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; 

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;

GPIO_Init(GPIOA,&GPIO_InitStructure);   

GPIO_PinAFConfig(GPIOA,GPIO_PinSource1,GPIO_AF_TIM2);


中斷優先級

NVIC_InitTypeDef NVIC_InitStructure;


NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01;

NVIC_InitStructure.NVIC_IRQChannelSubPriority =0x03;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; 

NVIC_Init(&NVIC_InitStructure); 


使能和其他配置

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;


TIM_ICInitStructure.TIM_Channel = TIM_Channel_2; 

TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; 

TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;

TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;    

TIM_ICInit(TIM2,&TIM_ICInitStructure);

TIM_ICInitStructure.TIM_ICFilter = 0x0;//   


TIM_PWMIConfig(TIM2,&TIM_ICInitStructure);


/* Select the TIM4 Input Trigger: TI2FP2 */

TIM_SelectInputTrigger(TIM2, TIM_TS_TI2FP2);


 /* Select the slave Mode: Reset Mode */

TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Reset);

TIM_SelectMasterSlaveMode(TIM2, TIM_MasterSlaveMode_Enable);


/* TIM enable counter */

TIM_Cmd(TIM2,ENABLE);

TIM_ITConfig(TIM2, TIM_IT_CC2, ENABLE);



中斷函數處理

這里就可以計算出周期和時間了,也可以直接復制過去。


void TIM2_IRQHandler(void)

    TIM_ClearITPendingBit(TIM2, TIM_IT_CC2); //??±ê???? 


    IC2Value=TIM_GetCapture2(TIM2);

    IC1Value=TIM_GetCapture1(TIM2);


    if(IC2Value!=0){

        DutyCycle=(float)IC1Value*100/IC2Value;

        Frequency =(float)1000000/IC2Value;//對應上面的1Mhz

    }

    else{

        DutyCycle=0;

        Frequency=0;

    }

}


顯示和現象對比

OLED_Refresh_Gram();

if(print_mode==0)

{       

   OLED_ShowString(0,0,"MeasureResult:",16);

   OLED_ShowString(0,16,"IC2Value:",16);

   OLED_ShowNum(72,16,IC2Value,7,16);

   OLED_ShowString(0,32,"DutyCycle:",16);

   OLED_ShowFloatNum(80,32,DutyCycle,7,16); 

   OLED_ShowString(0,48,"Frequency:",16);

   OLED_ShowFloatNum(80,48,Frequency,7,16);

}

aaa

精度與誤差

這里定時器讀到的IC1Value和IC2Value精度的限制,博主試過,最小可識別刻度在0.002hz,暫時還是夠用的。 

 z'z'z 

如果做的過程中沒能實現,可以直接下載參考我的.c文件,這里是文件鏈接。 

注意,博主的單片機型號是STM32F4系列的,時鐘配置的TIM2是168M,如果不懂時鐘的計算可以參考我前面的文章有講解。

關鍵字:STM32  精準采頻率 引用地址:關于STM32精準采頻率的實現

上一篇:STM32F4開發板----GPIO(001)
下一篇:LCD浮點數顯示函數的探討

推薦閱讀

全國政協委員、無錫市副市長高亞光日前在接受科技日報記者采訪時指出,我國建設制造強國的戰略新要求,為集成電路產業開拓了新的發展空間。高亞光指出,集成電路設計業處于集成電路產業鏈的最前端,也是我國集成電路產業鏈上最薄弱的環節。我國集成電路連續5年進口額超過2000億美元,特別是CPU/DSP、存儲器、FPGA和高端AD/DA等大宗核心產品依然嚴重依賴進...
當前,我國的學生群體十分龐大,教育市場的體量超乎想象。據統計,目前,單我國K12教育的在校人數在兩億左右,加上高中(中職)及高校學生,更是一個天文數字。面對如此龐大的學生群體,枯燥乏味的灌輸式教育、填鴨式教育等傳統教育形態早已難以滿足教育事業的發展。 教育領域迎來變革的風口浪尖,VR/AR技術成改革突破口縱觀每一次教學形態的重大革命,都...
采埃孚推出了業界首款前橋電子駐車制動器(EPB),該產品的推出擴大了電子駐車制動(EPB)系統的適用車型。通過這一解決方案,汽車制造商可以為小型車輛配備先進的制動系統,而無需傳統的手剎桿或駐車制動踏板。電子駐車制動器(EPB)在中、高檔和緊湊級汽車中很常見,但此前對于小型和微型汽車的設計者來說,在駕駛艙的設計中去除笨重的手剎桿是不可能做...
有媒體統計,今年《政府工作報告》中“創新”一詞出現了45次,“科技”出現了24次。出現頻率為近三年來最高。 相信大家都能在兩會當中感覺到,強化科技自立自強已經成為了國家目前階段發展的重中之重。多種科技創新方向中,《政府工作報告》尤其強調了“依靠創新推動實體經濟高質量發展,培育壯大新動能”“促進科技創新與實體經濟深度融合,更好發揮創...

史海拾趣

問答坊 | AI 解惑

ARM基礎知識

ARM基礎知識 ARM處理器共有37個寄存器。其中包括: **31個通用寄存器,包括程序計數器(PC)在內。這些寄存器都是32位寄存器。 **6個狀態寄存器。這些寄存器都是32位寄存器。 ARM處理器共有7種不同的處理器模式,每一種模式中都有一組相應的寄 ...…

查看全部問答∨

一個小問題,困惑著我(圖片格式改為jpg后重發)

我是想從手機的耳機孔取信號,來推動一個單穩態電路   從左往右把門電路分別稱為門1、門2、門3、門4. 門3、門4.組成的單穩態電路,很成功 ,用手指碰門2的輸入端可使單穩態翻轉。   門1組成的放大器,把手機的耳機信號放大后送到后面 ...…

查看全部問答∨

關于控制多個步進電動機的問題

我想用一個單片機控制大概3到4個步進電動機,請問應該使用那種方法將單片機與步進電動機互聯起來呢?有效而簡單的辦法是什么啊?具體應該怎么樣實現呢?…

查看全部問答∨

關于visualstate的

有哪位大哥用過IAR VISUALSTATE的,麻煩介紹下(越詳細越好),謝謝…

查看全部問答∨

各位高手,請指教。這個程序檢測傳感器信息for(i=0; i<8; i++) {flagSensor[i] = sensorDat...看不懂啊?

/ 檢測傳感器信息                         if(g_enSensor) {                                 ...…

查看全部問答∨

ping一段時間后出現網絡斷開的問題

現在我寫了一個類似于ping的程序在pc機上運行,只是該程序不是一秒發一次,而是如果收到對方的應答就立即發送另一個ping的包.也就是只是ping得更快. ping一段時間之后就出現網絡斷開. 我想問下是不是因為底下bsp的原因造成的? 又該怎么解決? 謝謝 ...…

查看全部問答∨

關于在STM32中使用printf函數的問題!

調試RTC例程時發現每次仿真到printf函數就死機。于是上網搜索解決方案,看到一個最簡單有效的方法就是要在KEIL上的microLIB要打勾勾,但是我試了,還是死機。這是怎么回事呢?難道還有什么要注意的地方?…

查看全部問答∨

求推薦型號和原因

老師讓做一個加速度計,來記錄人一天的行走路線。現在需要確定使用的有加速度計型號,板子型號和SD卡。求推薦。特別是加速度計,我看論壇上很多用7455的,有什么優勢?其他的如何?求推薦?…

查看全部問答∨

用51收集地磁傳感器的程序和源代碼

本人想通過測加速度和偏轉角度來做一個指揮棒,現在被地磁困住了,求救急 啊!!!!…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 柘荣县| 吴桥县| 大化| 土默特左旗| 盐边县| 信阳市| 万全县| 金华市| 桓仁| 沛县| 登封市| 陆川县| 楚雄市| 托里县| 双柏县| 新化县| 红桥区| 安新县| 定襄县| 德清县| 广宁县| 沙坪坝区| 宝兴县| 贵定县| 牟定县| 益阳市| 潮安县| 闸北区| 哈尔滨市| 吉安市| 福清市| 上杭县| 建平县| 阜宁县| 安平县| 嘉义县| 瓮安县| 阿拉善右旗| 林甸县| 图木舒克市| 读书|