色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CKS32F4xx系列產品Timer的基本使用方法-定時器脈沖計數

中科芯MCU ? 來源:中科芯MCU ? 2023-06-05 09:39 ? 次閱讀

上一章我們介紹了CKS32F4的通用定時器定時操作的使用方法,這一章我們將向大家介紹通用定時器作為定時器脈沖計數的使用。在本章中,我們將用TIM5的通道1(PA0)來做輸入捕獲,捕獲PA0上的脈沖。

輸入捕獲簡介

輸入捕獲模式可以用來測量脈沖寬度或者脈沖計數,我們簡單說明脈沖計數的原理,測量方法如下:首先設置定時器通道x為上升沿捕獲,在通道有脈沖觸發時,定時器進入捕獲中斷,我們可以在中斷中完成一次計數的累加,當一個計數周期結束后,得到的累加值就是脈沖計數值。

CKS32F4的定時器,除了TIM6和TIM7,其他定時器都有輸入捕獲功能。CKS32F4的輸入捕獲,簡單的說就是通過檢測TIMx_CHx上的邊沿信號,在邊沿信號發生跳變(比如上升沿/下降沿)的時候,將當前定時器的值(TIMx_CNT)存放到對應的通道的捕獲/比較寄存器(TIMx_CCRx)里面,完成一次捕獲。同時還可以配置捕獲時是否觸發中斷/DMA等。

本章我們用到TIM5_CH1來實現脈沖計數。

輸入捕獲操作

接下來,我們介紹我們本章需要用到的一些寄存器配置,需要用到的寄存器有:TIMx_ARR、TIMx_PSC、TIMx_CCMR1、TIMx_CCER、TIMx_DIER、TIMx_CR1、TIMx_CCR1接下來我們介紹這幾個寄存器的配置。

首先TIMx_ARR和TIMx_PSC,這兩個寄存器用來設自動重裝載值和TIMx的時鐘分頻,對于TIMx_AR,如圖1所示:一定要注意當自動裝載的值為空時,計數器不工作。

a225a138-0244-11ee-90ce-dac502259ad0.png

圖1

對于TIMx_PSC,如圖2所示,利用這個寄存器和RCC的預分頻寄存器配合,我們可以得到幾微妙到幾毫秒的計數周期。

a233b516-0244-11ee-90ce-dac502259ad0.png

圖2

再來看看捕獲/比較模式寄存器1:TIMx_CCMR1,這個寄存器在輸入捕獲的時候,非常有用,該寄存器的各位描述如圖3所示:

a23e8ef0-0244-11ee-90ce-dac502259ad0.png

圖3TIMx_CCMR1寄存器各位描

當在輸入捕獲模式下使用的時候,對應圖3的第二行描述,從圖中可以看出,TIMx_CCMR1明顯是針對2個通道的配置,低八位[7:0]用于捕獲/比較通道1的控制,而高八位[15:8]則用于捕獲/比較通道2的控制,因為TIMx還有CCMR2這個寄存器,所以可以知道CCMR2是用來控制通道3和通道4,這里我們用到的是TIM5的捕獲/比較通道1,我們重點介紹TIMx_CCMR1的[7:0]位(其高8位配置類似),TIMx_CCMR1的[7:0]位詳細描述見圖4所示:

a246dda8-0244-11ee-90ce-dac502259ad0.png

圖4 TIMx_CCMR1[7:0]位詳細描述

其中CC1S[1:0],這兩個位用于CCR1的通道配置,這里我們設置IC1S[1:0]=01,也就是配置IC1映射在TI1上,即CC1對應TIMx_CH1。輸入捕獲1預分頻器IC1PSC[1:0],這個比較好理解。我們是1次邊沿就觸發1次捕獲,所以選擇00就是了。輸入捕獲1濾波器IC1F[3:0],這個用來設置輸入采樣頻率和數字濾波器長度。其中,fCK_INT是定時器的輸入頻率(TIMxCLK),一般為84Mhz/168Mhz,而fDTS則是根據TIMx_CR1的CKD[1:0]的設置來確定的,如果CKD[1:0]設置為00,那么fDTS=fCK_INT,N值就是濾波長度,舉個簡單的例子:假設IC1F[3:0]=0011,并設置IC1映射到通道1上,且為上升沿觸發,那么在捕獲到上升沿的時候,再以fCK_INT的頻率,連續采樣到8次通道1的電平,如果都是高電平,則說明確是一個有效的觸發,就會觸發輸入捕獲中斷(如果開啟了的話)。

這樣可以濾除那些高電平脈寬低于8個采樣周期的脈沖信號,從而達到濾波的效果。這里,我們不做濾波處理,所以設置IC1F[3:0]=0000,只要采集到上升沿,就觸發捕獲。再來看看捕獲/比較使能寄存器:TIMx_CCER,本章我們要用到這個寄存器的最低2位,CC1E和CC1P位。這兩個位的描述如圖5所示:

a2522cc6-0244-11ee-90ce-dac502259ad0.png

圖5 TIMx_CCER最低2位描述

所以,要使能輸入捕獲,必須設置CC1E=1,而CC1P則根據自己的需要來配置。接下來我們再看看中斷使能寄存器:TIMx_DIER,該寄存器的各位描述見圖6:

a25fe8c0-0244-11ee-90ce-dac502259ad0.png

圖6TIMx_DIER寄存器各位描述

本章,我們需要用到中斷來處理捕獲數據,所以必須開啟通道1的捕獲比較中斷,即CC1IE設置為1??刂萍拇嫫鳎篢IMx_CR1,我們只用到了它的最低位,也就是用來使能定時器的,這里前面兩章都有介紹,請大家參考前面的章節。最后再來看看捕獲/比較寄存器TIMx_CCR1,該寄存器用來存儲捕獲發生時,TIMx_CNT的值,我們從TIMx_CCR1就可以讀出通道1捕獲發生時刻的TIMx_CNT值,至此,我們把本章要用的幾個相關寄存器都介紹完了,本章要實現通過輸入捕獲,來計量TIM5_CH1(PA0)上面的脈沖數量,下面我們介紹庫函數配置上述功能輸入捕獲的步驟:

1)開啟TIM5時鐘,配置PA0為復用功能(AF2),并開啟下拉電阻

要使用TIM5,我們必須先開啟TIM5的時鐘。同時我們要捕獲TIM5_CH1上面的高電平脈寬,所以先配置PA0為帶下拉的復用功能,同時,為了讓PA0的復用功能選擇連接到TIM5,所以設置PA0的復用功能為AF2,即連接到TIM5上面。開啟TIM5時鐘的方法為:

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE);//>>TIM5時鐘使能

當然,這里我們也要開啟PA0對應的GPIO的時鐘。配置PA0為復用功能,所以我們首先要設置PA0引腳映射AF2,方法為:

br

最后,我們還要初始化GPIO的模式為復用功能,同時這里我們還要設置為開啟下拉。方法為:

typedefstructGPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;//GPIOA0
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;//復用功能
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;
//速度100MHz
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;//推挽復用輸出
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_DOWN;//下拉
GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化PA0

跟上一講PWM輸出類似,這里我們使用的是定時器5的通道1,所以我們從CKS32F4對應的數據手冊可以查看到對應的IO口為PA0:

a26a9040-0244-11ee-90ce-dac502259ad0.png

2)初始化TIM5,設置TIM5的ARR和PSC

在開啟了TIM5的時鐘之后,我們要設置ARR和PSC兩個寄存器的值來設置輸入捕獲的自動重裝載值和計數頻率。這在庫函數中是通過TIM_TimeBaseInit函數實現的,在上面章節已經講解過,這里不重復講解。

TIM_TimeBaseStructure.TIM_Prescaler=psc;//定時器分頻
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//向上計數模式
TIM_TimeBaseStructure.TIM_Period=arr;//自動重裝載值
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInit(TIM5,&TIM_TimeBaseStructure);//初始化TIM5

3)設置TIM5的輸入捕獲參數,開啟輸入捕獲

TIM5_CCMR1寄存器控制著輸入捕獲1和2的模式,包括映射關系,濾波和分頻等。這里我們需要設置通道1為輸入模式,且IC1映射到TI1(通道1)上面,并且不使用濾波(提高響應速度)器。庫函數是通過TIM_ICInit函數來初始化輸入比較參數的:

voidTIM_ICInit(TIM_TypeDef*TIMx,TIM_ICInitTypeDef*TIM_ICInitStruct)

同樣,我們來看看參數設置結構體TIM_ICInitTypeDef的定義:

typedef struct
{
uint16_t TIM_Channel; //>>通道
uint16_t TIM_ICPolarity; //>>捕獲極性
uint16_t TIM_ICSelection;//>>映射
uint16_t TIM_ICPrescaler;//>>分頻系數
uint16_t TIM_ICFilter; //>>濾波器長度
}TIM_ICInitTypeDef;

參數TIM_Channel很好理解,用來設置通道。我們設置為通道1,為TIM_Channel_1。參數TIM_ICPolarit是用來設置輸入信號的有效捕獲極性,這里我們設置為TIM_ICPolarity_Rising,上升沿捕獲。同時庫函數還提供了單獨設置通道1捕獲極性的函數為:

TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling);

這表示通道1為上升沿捕獲,我們后面會用到,同時對于其他三個通道也有一個類似的函數,使用的時候一定要分清楚使用的是哪個通道該調用哪個函數,格式為TIM_OCxPolarityConfig()。參數TIM_ICSelection是用來設置映射關系,我們配置IC1直接映射在TI1上,選TIM_ICSelection_DirectTI。參數TIM_ICPrescaler用來設置輸入捕獲分頻系數,我們這里不分頻,所以選中TIM_ICPSC_DIV1,還有2,4,8分頻可選。參數TIM_ICFilter設置濾波器長度,這里我們不使用濾波器,所以設置為0。這些參數的意義,在我們講解寄存器的時候舉例說明過,這里不做詳細解釋。我們的配置代碼是:

TIM5_ICInitStructure.TIM_Channel=TIM_Channel_1;//>>選擇輸入端IC1映射到TI1上
TIM5_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising;//>>上升沿捕獲
TIM5_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI;//>>映射到TI1上
TIM5_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1;//>>配置輸入分頻,不分頻
TIM5_ICInitStructure.TIM_ICFilter=0x00;//>>IC1F=0000配置輸入濾波器不濾波
TIM_ICInit(TIM5,&TIM5_ICInitStructure);

4)使能捕獲和更新中斷(設置TIM5的DIER寄存器)

因為我們要捕獲的是高電平信號,所以,第一次捕獲是上升沿,這兩件事,我們都在中斷里面做,所以必須開啟捕獲中斷和更新中斷。這里我們使用定時器的開中斷函數TIM_ITConfig即可使能捕獲和更新中斷:

TIM_ITConfig(TIM5,TIM_IT_Update|TIM_IT_CC1,ENABLE);//>>允許更新中斷和捕獲中斷

5)設置中斷優先級,編寫中斷服務函數

因為我們要使用到中斷,所以我們在系統初始化之后,需要先設置中斷優先級分組,這里方法跟我們前面講解一致,調用NVIC_PriorityGroupConfig()函數即可,我們系統默認設置都是分組2。設置中斷優先級的方法前面多次提到這里我們不做講解,主要是通過函數NVIC_Init()來完成。設置優先級完成后,我們還需要在中斷函數里面完成數據處理和捕獲設置等關鍵操作,從而實現高電平計數統計。在中斷服務函數里面,跟以前的外部中斷和定時器中斷實驗中一樣,我們在中斷開始的時候要進行中斷類型判斷,在中斷結束的時候要清除中斷標志位。使用到的函數在上面的實驗已經講解過,分別為TIM_GetITStatus()函數和TIM_ClearITPendingBit()函數。

if(TIM_GetITStatus(TIM5,TIM_IT_Update)!=RESET){}//>>判斷是否為更新中斷
if(TIM_GetITStatus(TIM5,TIM_IT_CC1)!=RESET){}//>>判斷是否發生捕獲事件
TIM_ClearITPendingBit(TIM5,TIM_IT_CC1|TIM_IT_Update);//>>清除中斷和捕獲標志位

6)使能定時器(設置TIM5的CR1寄存器)

最后,必須打開定時器的計數器開關,啟動TIM5的計數器,開始輸入捕獲。

TIM_Cmd(TIM5,ENABLE);//>>使能定時器5

通過以上6步設置,定時器5的通道1就可以開始輸入捕獲了。

代碼示例

這里我們主要是添加了輸入捕獲初始化函數TIM5_CH1_Cap_Init以及中斷服務函數TIM5_IRQHandler。對于輸入捕獲,我們也是使用的定時器相關的操作,接下來我們來看看兩個函數的內容:

TIM_ICInitTypeDef TIM5_ICInitStructure;

//>>定時器5通道1輸入捕獲配置

//>>arr:自動重裝值(TIM2,TIM5是32位的!!)psc:時鐘預分頻數

void TIM5_CH1_Cap_Init(u32 arr,u16 psc) 
{ 
GPIO_InitTypeDef GPIO_InitStructure; 
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; 
NVIC_InitTypeDef NVIC_InitStructure; 
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE); //>>TIM5 時鐘使能 
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); //>>使能 PORTA 時鐘 
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //>>GPIOA0 
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//>>復用功能 
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; 
//>>速度 100MHz 
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //>>推挽復用輸出 
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN; //>>下拉 
GPIO_Init(GPIOA,&GPIO_InitStructure); //>>初始化 PA0 
GPIO_PinAFConfig(GPIOA,GPIO_PinSource0,GPIO_AF_TIM5); //>>PA0 復用位定時器 5 
TIM_TimeBaseStructure.TIM_Prescaler=psc; //>>定時器分頻 
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //>>向上計數模式 
TIM_TimeBaseStructure.TIM_Period=arr; //>>自動重裝載值 
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; 
TIM_TimeBaseInit(TIM5,&TIM_TimeBaseStructure); 
TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1; //>>選擇輸入端 IC1 映射到 TI1 上 
TIM5_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; 
//>>上升沿捕獲 
TIM5_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //>>映射到 TI1 上 
TIM5_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; //>>配置輸入分頻,不分頻 
TIM5_ICInitStructure.TIM_ICFilter = 0x00;//>>IC1F=0000 配置輸入濾波器 不濾波 
TIM_ICInit(TIM5, &TIM5_ICInitStructure); //>>初始化 TIM5 輸入捕獲參數 
TIM_ITConfig(TIM5,TIM_IT_Update|TIM_IT_CC1,ENABLE);//>>允許更新和捕獲中斷 
TIM_Cmd(TIM5,ENABLE ); 
//>>使能定時器 5 
NVIC_InitStructure.NVIC_IRQChannel = TIM5_IRQn; 
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;//>>搶占優先級 2 
NVIC_InitStructure.NVIC_IRQChannelSubPriority =0;//>>響應優先級 0 
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //>>IRQ 通道使能 
NVIC_Init(&NVIC_InitStructure); 
//>>根據指定的參數初始化 VIC 寄存器、 
} 
//>>捕獲狀態 
//>>[7]:0,沒有成功的捕獲;1,成功捕獲到一次. 
//>>[6]:0,還沒捕獲到低電平;1,已經捕獲到低電平了. 
//>>[5:0]:捕獲低電平后溢出的次數(對于 32 位定時器來說,1us 計數器加 1,溢出時間:4294 秒) 
u8 TIM5CH1_CAPTURE_STA=0; //>>輸入捕獲狀態
u32 TIM5CH1_CAPTURE_VAL;//>>輸入捕獲值(TIM2/TIM5 是 32 位) 
//>>定時器 5 中斷服務程序 
void TIM5_IRQHandler(void) 
{
    if(TIM_GetITStatus(TIM5, TIM_IT_CC1) != RESET)//>>捕獲 1 發生捕獲事件 
    { 
        TIM5CH1_CAPTURE_VAL  ++;       }
    }
  TIM_ClearITPendingBit(TIM5, TIM_IT_CC1|TIM_IT_Update); //>>清除中斷標志位 
}

此部分代碼包含兩個函數,其中TIM5_CH1_Cap_Init函數用于TIM5通道1的輸入捕獲設置,其設置和我們上面講的步驟是一樣的,這里就不多說,特別注意:TIM5是32位定時器,所以arr是u32類型的。接下來,重點來看看第二個函數。TIM5_IRQHandler是TIM5的中斷服務函數,變量TIM5CH1_CAPTURE_VAL,則用來記錄捕獲到上升沿的時候,對脈沖進行計數,timer.h頭文件內容比較簡單,主要是函數申明,這里我們不做過多講解。接下來,我們看看main函數內容:

extern u8 TIM5CH1_CAPTURE_STA; 
//>>輸入捕獲狀態
extern u32 
TIM5CH1_CAPTURE_VAL;//輸入捕獲值 
int main(void) 
{ 
long long temp = 0; 
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//>>設置系統中斷優先級分組 2 
delay_init(168); //初始化延時函數 
uart_init(115200);//初始化串口波特率為 115200
TIM14_PWM_Init(500-1,84-1); 
//>>84M/84=1Mhz 的計數頻率計數到 500,頻率為 1M/500=2Khz 
TIM5_CH1_Cap_Init(0XFFFFFFFF,84-1);//>>以 84M/84=1Mhz 的頻率計數 
while(1) 
{ 
delay_ms(100);
//>>得到脈沖計數 
printf("PWM CNT:%d 
", TIM5CH1_CAPTURE_VAL);//>>打印脈沖計數
} 
}

該main函數是在PWM實驗的基礎上修改來的,我們保留了PWM輸出,同時通過設置TIM5_Cap_Init(0XFFFFFFFF,84-1),將TIM5_CH1的捕獲計數器設計為1us計數一次,并設置重裝載值為最大以達到不讓定時器溢出的作用(溢出時間為2^32-1us),所以我們的捕獲時間精度為1us。每隔100ms打印一次脈沖計數值。至此,我們的軟件設計就完成了。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 中斷
    +關注

    關注

    5

    文章

    898

    瀏覽量

    41470
  • 定時器
    +關注

    關注

    23

    文章

    3246

    瀏覽量

    114719
  • 函數
    +關注

    關注

    3

    文章

    4327

    瀏覽量

    62569
  • 脈沖計數
    +關注

    關注

    0

    文章

    7

    瀏覽量

    8582
  • Timer
    +關注

    關注

    1

    文章

    64

    瀏覽量

    12784

原文標題:MCU微課堂|CKS32F4xx系列產品Timer的基本使用方法-定時器脈沖計數

文章出處:【微信號:中科芯MCU,微信公眾號:中科芯MCU】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MCU微課堂|CKS32F4xx系列產品時鐘配置

    ,并且高時鐘頻率將導致功耗增加、抗電磁干擾能力變弱,因此,CKS32F4xx系列產品內部具備多個時鐘源。本文將對CKS32F4xx系列產品時鐘組成進行分析,并講解該系統單片機的時鐘的配
    發表于 12-12 10:17 ?830次閱讀

    CKS32F4xx系列ETH通信詳解

    CKS32F4xx系列芯片自帶以太網模塊,該模塊包括帶專用DMA控制的MAC 802.3(介質訪問控制)控制
    的頭像 發表于 11-10 11:13 ?992次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>ETH通信詳解

    CKS32F4xx系列MCU SysTick定時器的原理及使用方法

    本課將為大家講解CKS32F4xx系列產品的SysTick定時器原理及使用方法。SysTick定時器也叫SysTick滴答
    的頭像 發表于 12-18 09:21 ?1331次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>MCU SysTick<b class='flag-5'>定時器</b>的原理及<b class='flag-5'>使用方法</b>

    CKS32F4xx系列產品NVIC中斷優先級管理單元講解

    本課將為大家講解CKS32F4xx系列產品的中斷優先級管理單元NVIC。CM4內核共支持256個中斷,其中包含了16個內核中斷和240個外部中斷,具有256級可編程中斷設置。但CKS32F4x
    的頭像 發表于 02-06 14:52 ?1169次閱讀

    CKS32F4xx系列產品串口DMA傳輸

    在上一講,我們講過CKS32F4xx系列的6個串口都支持DMA傳輸。因此本節我們對CKS32F4xx系列的DMA進行介紹,同時利用DMA對串口數據進行傳輸。
    的頭像 發表于 04-10 11:18 ?1031次閱讀

    CKS32F4xx系列產品定時器使用-基本特征和定時操作

    這一課我們將介紹CKS32F4XX系列產品定時器使用,CKS32F4XX定時器功能十分強大,包含2個高級控制
    的頭像 發表于 05-19 09:18 ?892次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列產品</b>的<b class='flag-5'>定時器</b>使用-基本特征和<b class='flag-5'>定時</b>操作

    CKS32F4xx系列RNG功能設置

    ? MCU 微課堂 CKS32F4xx 系 列RNG功能 隨機數發生簡介 ? ? CKS32F4xx系列自帶了硬件隨機數發生(RNG),
    的頭像 發表于 09-08 10:01 ?603次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>RNG功能設置

    CKS32F4xx系列DAC功能

    CKS32F4xx系列DAC功能
    的頭像 發表于 11-06 16:56 ?845次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>DAC功能

    CKS32F4xx系列ADC多通道DMA電壓采集

    CKS32F4xx系列ADC多通道DMA電壓采集
    的頭像 發表于 11-06 16:53 ?1096次閱讀

    CKS32F4xx系列產品Timer的基本使用方法-定時器脈沖計數

    CKS32F4xx系列產品Timer的基本使用方法-定時器脈沖計數
    的頭像 發表于 11-09 17:38 ?1065次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列產品</b><b class='flag-5'>Timer</b>的基本<b class='flag-5'>使用方法</b>-<b class='flag-5'>定時器</b><b class='flag-5'>脈沖計數</b>

    CKS32F4xx系列產品Timer的基本使用方法-比較輸出

    CKS32F4xx系列產品Timer的基本使用方法-比較輸出
    的頭像 發表于 11-09 17:39 ?848次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列產品</b><b class='flag-5'>Timer</b>的基本<b class='flag-5'>使用方法</b>-比較輸出

    CKS32F4xx系列產品Timer的基本使用方法-定時操作

    CKS32F4xx系列產品Timer的基本使用方法-定時操作
    的頭像 發表于 11-09 17:41 ?615次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列產品</b><b class='flag-5'>Timer</b>的基本<b class='flag-5'>使用方法</b>-<b class='flag-5'>定時</b>操作

    MCU微課堂 | CKS32F4xx系列產品SPI通信

    MCU微課堂 | CKS32F4xx系列產品SPI通信
    的頭像 發表于 10-24 17:12 ?699次閱讀
    MCU微課堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列產品</b>SPI通信

    MCU微課堂 | CKS32F4xx系列產品GPIO口配置

    MCU微課堂 | CKS32F4xx系列產品GPIO口配置
    的頭像 發表于 10-24 15:14 ?776次閱讀
    MCU微課堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列產品</b>GPIO口配置

    CKS32F4xx系列FSMC功能簡介

    本課講為大家講解CKS32F4xx系列產品的FSMC應用實例,FSMC全稱是Flexible Static Memory Controller,讀作靈活的靜態存儲控制,顧名思義,MCU可以通過FSMC擴展靜態內存
    的頭像 發表于 04-14 15:06 ?932次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>FSMC功能簡介
    主站蜘蛛池模板: 手机看片国产日韩欧美| 国产亚洲精品久久无码98| 在线免费观看亚洲视频| 亚洲精品美女久久777777 | 99久酒店在线精品2019| 伊人影院网| 野花高清在线观看免费3中文| 亚洲2017久无码| 午夜日本大胆裸艺术| 她也色在线视频站| 乡村教师电影完整版在线观看| 手机毛片在线观看| 我的漂亮朋友在线观看全集免费| 日久精品不卡一区二区| 视频在线观看高清免费看| 视频网站入口在线看| 天天爽夜夜爽夜夜爽| 午夜DY888国产精品影院| 午夜无码片在线观看影院| 亚洲 欧美 国产 综合五月天| 鞋奴的视频VK| 亚洲欧美偷拍视频一区| 一个人高清在线观看日本免费| 伊人久久综合热青草| 4455永久在线毛片观看| a一级一片免费观看视频| 动漫AV纯肉无码AV电影网| 国产精品青青草原app大全| 国偷自产AV一区二区三区健身房| 好男人午夜www视频在线观看| 黑人操日本女人| 麻豆免费版| 亚洲国产欧美国产综合在线| 亚洲欧美日韩精品久久奇米色影视| 一本道无码字幕在线看| 879影视动漫h免费观看| 超碰97人人做人人爱亚洲尤物| 国产对白精品刺激一区二区| 狠狠色丁香久久婷婷综合_中| 久久久久夜| 日本人六九视频|