0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MM32F0140定時(shí)器模塊計(jì)數(shù)定時(shí)功能

科技綠洲 ? 來源:靈動(dòng)MM32 ? 作者:靈動(dòng)MM32 ? 2022-04-07 16:31 ? 次閱讀

本篇筆記主要探討 MM32F0140 定時(shí)器模塊的框圖結(jié)構(gòu)、定時(shí)器提供的計(jì)數(shù)定時(shí)等功能以及配置定時(shí)器的流程,并以 pokt-f0140 開發(fā)板作為實(shí)際演示平臺(tái),使用開發(fā)板上 32 位定時(shí)器 TIM2 進(jìn)行 pwm 波輸出實(shí)驗(yàn)。

TIM 功能描述

MM32F0140 TIM 最基本的功能為計(jì)數(shù)定時(shí),此功能依靠定時(shí)器內(nèi)部的預(yù)分頻器 PSC 、計(jì)數(shù)器 CNT 和 自動(dòng)預(yù)裝載寄存器 ARR 合作完成。此外,定時(shí)器如有輸入輸出通道,則還能提供輸入捕獲、比較輸出和從模式輸入等功能。在此之上,對(duì)于擁有額外剎車輸入通道的高級(jí)定時(shí)器而言,還可提供剎車和死區(qū)設(shè)置。

TIM 框圖

下圖1 為 MM32F0140 高級(jí)定時(shí)器的結(jié)構(gòu)框圖,各部分支持不同的功能。其中:

紅框支持最基本的計(jì)數(shù)定時(shí)功能。計(jì)數(shù)器、預(yù)分頻器和自動(dòng)預(yù)裝載器也被稱為定時(shí)器的時(shí)基單元。預(yù)分頻器 PSC 將輸入的時(shí)鐘信號(hào)進(jìn)行分頻,計(jì)數(shù)器 CNT 對(duì)分頻信號(hào)進(jìn)行計(jì)數(shù)。計(jì)數(shù)器值和自動(dòng)預(yù)裝載寄存器 ARR 值進(jìn)行比較,發(fā)生上溢或下溢時(shí),則表明完成一次周期計(jì)數(shù),周期值為 ARR 寄存器寫入值,頻率為輸入時(shí)鐘源經(jīng)過 PSC 預(yù)分頻器分頻后頻率。

灰框支持從模式輸入功能。除內(nèi)部時(shí)鐘外,定時(shí)器模塊可以通過配置從模式,選擇來自外部輸入引腳 TI1 或 TI2 的輸入信號(hào)或 ETR 引腳信號(hào)或其他定時(shí)器的 ITRx 信號(hào)作為時(shí)鐘輸入源。

綠框支持輸入捕獲功能。當(dāng)通道 x 配置為輸入捕獲模式時(shí),通道 x 的輸入信號(hào)依次經(jīng)過濾波、邊沿檢測(cè)以及分頻,觸發(fā)通道 x 捕獲事件。定時(shí)器模塊會(huì)將當(dāng)前計(jì)數(shù)器計(jì)數(shù)值寫入對(duì)應(yīng)通道的捕獲/比較寄存器 CCRx 中。

藍(lán)框支持比較輸出功能。當(dāng)通道 x 配置為比較輸出模式時(shí),定時(shí)器將當(dāng)前計(jì)數(shù)器值與通道 x 捕獲/比較寄存器 CCRx 中值進(jìn)行比較,相等時(shí)定時(shí)器將改變通道 x 的參考輸出電壓 REF。

黑框支持剎車功能,當(dāng) BKIN 通道有指定剎車信號(hào)出現(xiàn)時(shí),各路輸出通道將輸出預(yù)設(shè)的空閑輸出電壓。

圖1. MM32F0140 高級(jí)定時(shí)器框圖

下文將詳細(xì)敘述定時(shí)器的計(jì)數(shù)定時(shí)、輸入捕獲和比較輸出這三個(gè)主要功能。

計(jì)數(shù)定時(shí)

計(jì)數(shù)定時(shí)即計(jì)數(shù)器使能后,在一定計(jì)數(shù)頻率下進(jìn)行計(jì)數(shù)。根據(jù)設(shè)置的計(jì)數(shù)方向,計(jì)數(shù)器完成周期次計(jì)數(shù)后,定時(shí)器觸發(fā)更新中斷。

計(jì)數(shù)器頻率計(jì)算

設(shè)定時(shí)器輸入頻率為 clk_frq,預(yù)分頻器分頻值為 psc,則計(jì)數(shù)器頻率 cnt_frq 為

計(jì)數(shù)器計(jì)數(shù)方向

MM32F0140 定時(shí)器中 TIM14、TIM16 和 TIM17 僅提供向上計(jì)數(shù)。其余定時(shí)器可以提供以下三種可選計(jì)數(shù)方向:

向上計(jì)數(shù),計(jì)數(shù)器從 0 開始向上計(jì)數(shù),遞增到 ARR 自動(dòng)預(yù)裝載寄存器值后,計(jì)數(shù)器產(chǎn)生上溢事件。定時(shí)器產(chǎn)生一個(gè)更新事件,計(jì)數(shù)器又從 0 開始計(jì)數(shù)。

向下計(jì)數(shù),計(jì)數(shù)器從 ARR 自動(dòng)預(yù)裝載寄存器值開始向下計(jì)數(shù),遞減到 0 后,計(jì)數(shù)器產(chǎn)生下溢事件。定時(shí)器產(chǎn)生一個(gè)更新事件,計(jì)數(shù)器又從 ARR 自動(dòng)預(yù)裝載寄存器值開始計(jì)數(shù)。

先向上計(jì)數(shù)再向下計(jì)數(shù)。計(jì)數(shù)器從 0 開始向上計(jì)數(shù),遞增到 ARR 自動(dòng)預(yù)裝載寄存器值后,計(jì)數(shù)器產(chǎn)生上溢事件。定時(shí)器產(chǎn)生一個(gè)更新事件。然后計(jì)數(shù)器從 ARR 自動(dòng)預(yù)裝載寄存器值開始向下計(jì)數(shù),遞減到 0 后,計(jì)數(shù)器產(chǎn)生下溢事件。定時(shí)器再產(chǎn)生一個(gè)更新事件。

圖2 定時(shí)器向上計(jì)數(shù)

如圖2 所示,定時(shí)器輸入時(shí)鐘即分頻器時(shí)鐘 CK_PSC,預(yù)分頻器 PSC 值為 1 ,即定時(shí)器頻率為 CK_PSC 的二分頻頻率。定時(shí)器自動(dòng)裝載值 ARR 為 5,從圖中可見計(jì)數(shù)器 CNT 達(dá)到 5 時(shí),產(chǎn)生一個(gè)更新事件 UEV。

定時(shí)器周期長(zhǎng)度

ARR 自動(dòng)預(yù)裝載寄存器的值為定時(shí)器周期長(zhǎng)度,決定定時(shí)器計(jì)數(shù)多少次后產(chǎn)生一個(gè)更新事件。

比較輸出

如圖3 所示,定時(shí)器比較輸出功能通過計(jì)數(shù)器、通道 x 的捕獲/比較寄存器 CCRx 以及輸出控制電路實(shí)現(xiàn)。定時(shí)器將計(jì)數(shù)器和捕獲/比較寄存器 CCRx 值實(shí)時(shí)比較,當(dāng)二值相等時(shí)會(huì)改變通道 x 的參考輸出電壓 REF,參考輸出電壓 REF 和輸出控制電路共同決定通道 x 的實(shí)際電壓值。

圖3 MM32F0140 定時(shí)器輸出通道1示意圖

比較輸出匹配值

輸出通道x 對(duì)應(yīng)的 CCRx 寄存器值為比較輸出匹配值,定時(shí)器將在計(jì)數(shù)器值和通道 x 的匹配值相等時(shí),根據(jù)比較輸出模式,改變通道 x 的參考輸出電壓REF。

比較輸出模式選擇

MM32 F0140 的 TIM 模塊一共有 7 種比較輸出模式:

匹配結(jié)果對(duì)于參考輸出電壓 REF 沒有影響。

匹配時(shí)將參考輸出電壓 REF 設(shè)為高電平。

匹配時(shí)將參考輸出電壓 REF 設(shè)為低電平。

匹配時(shí)翻轉(zhuǎn)參考輸出電壓 REF。

強(qiáng)制參考輸出電壓 REF為低電平。

強(qiáng)制參考輸出電壓 REF為高電平。

PWM模式1:當(dāng)計(jì)數(shù)值小于匹配值時(shí),參考電壓REF為高電平,否則為低電平。

PWM模式2:當(dāng)計(jì)數(shù)值小于匹配值時(shí),參考電壓REF為低電平,否則為高電平。

參考輸出電壓和實(shí)際輸出電壓間關(guān)系

定時(shí)器 CCER[CCxP] 位決定了參考輸出電壓和實(shí)際輸出電壓間關(guān)系,具體可見表1。CCER[CCxP]值為0表示高電平有效,為1表示低電平有效。

表1 CCER[CCxP]值對(duì)實(shí)際輸出電壓的影響

如下圖 4 所示,通道1的比較值為1,當(dāng)計(jì)數(shù)器值小于1時(shí),通道1的比較輸出電壓 OC1REF 為高;當(dāng)計(jì)數(shù)器值等于1時(shí),通道1 的比較輸出電壓 OC1REF 拉低,產(chǎn)生一個(gè)下降沿。OC1REF 將一直保持為低,直到定時(shí)器更新事件發(fā)生,計(jì)數(shù)器從 0 開始計(jì)數(shù)時(shí),OC1REF 又被拉高。

圖4 遞增計(jì)數(shù)下PWM模式1時(shí)輸出通道參考電壓

輸入捕獲

如圖5 所示,輸入通道 x 的輸入信號(hào) TIx 經(jīng)過濾波器、邊沿檢測(cè)、分頻以后被定時(shí)器捕獲,定時(shí)器將輸入捕獲時(shí)刻的計(jì)數(shù)器值寫入相應(yīng)通道的捕獲/比較寄存器 CCRx 中。

圖5 MM32F0140輸入捕獲框圖

計(jì)數(shù)定時(shí)配置

時(shí)基配置

配置定時(shí)器工作模式

配置 CR1[OPM] 位可以設(shè)置定時(shí)器工作模式,其中值為 0 表示定時(shí)器將循環(huán)計(jì)時(shí),值為 1 表示計(jì)時(shí) 1 次后就停止計(jì)數(shù)器。

配置是否預(yù)裝載

配置 CR1[ARPE] 位可以配置定時(shí)器自動(dòng)預(yù)裝載寄存器 ARR 的實(shí)際更新方式,值為1則用戶寫入 ARR 寄存器的值會(huì)在下一次計(jì)數(shù)器更新時(shí)起效,否則立刻生效。

配置計(jì)數(shù)模式

配置 CR1[DIR] 位和 CR1[CMS] 位可以配置計(jì)數(shù)器計(jì)數(shù)模式。如果選擇單向計(jì)數(shù),CR1[CMS]需配置為 0,此時(shí)CR1[DIR] 配置為 0 時(shí),向上計(jì)數(shù),配置為 1 時(shí)向下計(jì)數(shù)。如果選擇先向上計(jì)數(shù)再向下計(jì)數(shù),則需要配置 CR1[CMS],CR1[DIR] 值保持為 0。

配置預(yù)分頻值

由上述計(jì)數(shù)器頻率計(jì)算小結(jié)可知,如果需要定時(shí)器頻率為 cnt_frq, 定時(shí)器輸入源頻率為 clk_frq,定時(shí)器的預(yù)分頻值 psc 應(yīng)為

計(jì)算出的 psc 值寫入 PSC 寄存器。

配置自動(dòng)預(yù)裝載寄存器 ARR

自動(dòng)預(yù)裝載寄存器 ARR 的值決定定時(shí)器周期計(jì)數(shù)次數(shù)。假如定時(shí)器向上計(jì)數(shù),則計(jì)數(shù)器從 0 遞增到 ARR 值,即 ARR 寄存器值為 arrv,則實(shí)際計(jì)數(shù)器一個(gè)周期內(nèi)會(huì)做arrv+1 次計(jì)數(shù),所以ARR 寄存器值應(yīng)為需要的周期計(jì)數(shù)值減一。將此值寫入 ARR 寄存器。

使能計(jì)數(shù)器

完成上述配置后,將 CR1[CEN] 置為 1 即可啟動(dòng)計(jì)數(shù)器計(jì)數(shù)。當(dāng)不需要計(jì)數(shù)時(shí),將此位設(shè)置為 0。

比較輸出配置

配置通道輸出模式

配置 CCMRy[CCxS] 位為 0,可以將通道 x 配置為輸出模式。

配置是否預(yù)裝載匹配值

配置 CCMRy[OCxPE] 位可以設(shè)置通道 x 的比較輸出匹配值生效方式,為 0 則一旦寫入立刻生效,否則匹配值將在下一次更新事件后生效。

配置比較輸出模式

配置 CCMRy[OCxM] 字段可以選擇不同的比較輸出模式,具體字段值和比較輸出模式間關(guān)系可見表3。

表3 CCMRy[OCxM] 與 比較輸出模式間對(duì)應(yīng)關(guān)系

配置有效輸出電壓

配置 CCER[CCxP] 位,可以設(shè)置通道 x 的有效輸出電壓。值為0,則參考電壓的高電平為有效電平;值為1,則參考電壓的低電平為有效電平。

使能通道輸出

配置 CCER[CCxE] 位為1,使能通道輸出功能;配置為 0,則關(guān)閉通道輸出功能。

輸入捕獲配置

配置通道輸入模式

配置 CCMRy[CCxS] 位為1,可將通道 x 配置為輸入模式。

配置輸入信號(hào)邊沿選擇

配置 CCER[CCxP] 和 CCER[CCxNP] 位,可以配置輸入信號(hào)的有效邊沿選擇,具體對(duì)應(yīng)關(guān)系如表4。

表4 輸入模式下,CCER[CCxP]和CCER[CCxNP]

對(duì)于輸入邊沿影響

配置采樣和濾波

配置 CCMRy[ICxF] 字段,設(shè)置通道 x 的輸入捕獲濾波器。

配置預(yù)分頻器

配置 CCMRy[IC1PSC] 字段,設(shè)置通道 x 輸入信號(hào)的預(yù)分頻值。

使能通道輸入

配置 CCER[CCxE] 位為 1,使能通道輸入捕獲功能;配置為 0,則關(guān)閉通道輸入捕獲功能。

樣例

pokt-f0140 開發(fā)板 定時(shí)器實(shí)現(xiàn)TIM2通道1輸出pwm波

SDK 中已有支持的 pokt-f0140 開發(fā)板上,在 tim_32b_0 樣例工程中,通過 tim_32b_output_compare_pwm 可以使用定時(shí)器 TIM2 的通道 1 輸出 pwm 波。

時(shí)鐘初始化

TIM2 在 APB2 總線上,需要使能時(shí)鐘。TIM2 的通道 1 復(fù)用 PA0 引腳,需要使能 GPIOA 時(shí)鐘。

/* Enable TIM. */RCC_EnableAPB1Periphs(RCC_APB1_PERIPH_TIM2, true);RCC_ResetAPB1Periphs(RCC_APB1_PERIPH_TIM2);/* Enable GPIOA for TIM2_CH1. */RCC_EnableAHB1Periphs(RCC_AHB1_PERIPH_GPIOA, true);RCC_ResetAHB1Periphs(RCC_AHB1_PERIPH_GPIOA);

初始化輸出引腳

GPIO_Init_Type gpio_init;gpio_init.Pins  = GPIO_PIN_0;gpio_init.PinMode  = GPIO_PinMode_AF_PushPull;gpio_init.Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &gpio_init);GPIO_PinAFConf(GPIOA, gpio_init.Pins, GPIO_AF_2);/* 根據(jù)data sheet, 配置復(fù)用模式2。 */

定時(shí)器時(shí)基配置

TIM_32B_Init_Type tim_init;tim_init.ClockFreqHz = BOARD_TIM_32B_FREQ;/* 因?yàn)?TIM_32B 在APB2總線上,所以BOARD_TIM_32B_FREQ的值實(shí)際為APB2總線時(shí)鐘頻率。*/tim_init.StepFreqHz = APP_TIM_UPDATE_PERIOD;  /* 定時(shí)器周期時(shí)長(zhǎng)為定時(shí)器周期長(zhǎng)度Period加1后除定時(shí)器頻率StepFreqHz。*/tim_init.Period = APP_TIM_UPDATE_PERIOD - 1u; /* 所以可得值為1,也即定時(shí)器周期時(shí)長(zhǎng)為1s。 */tim_init.EnablePreloadPeriod = false; /* 不采用預(yù)裝載,修改ARR寄存器將立即生效。 */tim_init.PeriodMode = TIM_32B_PeriodMode_Continuous;/* 循環(huán)計(jì)時(shí)。 */tim_init.CountMode = TIM_32B_CountMode_Increase; /* 遞增計(jì)數(shù)。 */TIM_32B_Init(BOARD_TIM_32B_PORT, &tim_init);

配置輸出通道

TIM_32B_OutputCompareConf_Type tim_outcomp_conf;tim_outcomp_conf.ChannelValue = 0u;/* Compare value initialize with 0. */tim_outcomp_conf.EnableFastOutput = false; /* Disable fast output. */tim_outcomp_conf.EnablePreLoadChannelValue = false; /* Disable preload, put data immediately. */tim_outcomp_conf.RefOutMode = TIM_32B_OutputCompareRefOut_FallingEdgeOnMatch;/*Generate a falling edge when matched.*/tim_outcomp_conf.ClearRefOutOnExtTrigger = false; /* Ext signal won't clear output. */tim_outcomp_conf.PinPolarity = TIM_32B_PinPolarity_Rising;/* High polarity is valid. */TIM_32B_EnableOutputCompare(BOARD_TIM_32B_PORT, BOARD_TIM_32B_CHANNEL, &tim_outcomp_conf);

使能計(jì)數(shù)器

TIM_32B_Start(BOARD_TIM_32B_PORT);

main 函數(shù)

main 函數(shù)將輪詢鍵入,并按設(shè)定的占空比數(shù)組循環(huán)輸出不同的 PWM 波。

int main(void){    BOARD_Init();    printf("\r\ntim_32b_output_compare_pwm.\r\n");    /* Setup the timer. */    app_tim_32b_init();    printf("press any key to change the pwm ...\r\n");    while (1)    {        for (uint32_t i = 0; i < APP_TIM_32B_PWM_NUM; i++)        {            getchar();            TIM_32B_PutChannelValue(BOARD_TIM_32B_PORT, BOARD_TIM_32B_CHANNEL, app_tim_32_pwm_val[i]);/* Change duty cycle. */            printf("PWM value: %u\r\n", (unsigned)app_tim_32_pwm_val[i]);        }    }}
審核編輯:彭菁
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120366
  • 分頻器
    +關(guān)注

    關(guān)注

    43

    文章

    447

    瀏覽量

    49911
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3248

    瀏覽量

    114800
  • MM32
    +關(guān)注

    關(guān)注

    1

    文章

    106

    瀏覽量

    763
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    靈動(dòng)微課堂(第208講)| MM32F0140學(xué)習(xí)筆記——TIM

    MM32F0140 學(xué)習(xí)筆記 - TIM本篇筆記主要探討 MM32F0140 定時(shí)器模塊的框圖結(jié)構(gòu)、定時(shí)器提供的
    發(fā)表于 04-09 11:54

    上海靈動(dòng)微電子M0內(nèi)核32位單片機(jī)MM32F0140

    端口和多種外設(shè)。 MM32F0140系列包含1個(gè)12位的ADC和1個(gè)比較,1個(gè)16位通用定時(shí)器、1個(gè)32位通用定時(shí)器、3個(gè)16位基本定時(shí)器
    發(fā)表于 11-09 17:53 ?879次閱讀

    靈動(dòng)微MM32F0140兼容替換華大單片機(jī)HC32L130

    靈動(dòng)微MM32F0140使用高性能的Arm?Cortex?-M0為內(nèi)核的32位MCU,工作頻率最高可達(dá)72兆赫茲,內(nèi)置64KB Flash,8KB RAM高速存儲(chǔ),豐富的增強(qiáng)型I/O端口和多種外設(shè)
    發(fā)表于 01-26 14:41 ?540次閱讀

    32位微控制MM32F0140數(shù)據(jù)手冊(cè)

    MM32F0140 微控制搭載 Arm? Cortex?-M0 內(nèi)核,最高工作頻率可達(dá) 72MHz。內(nèi)置 64KB 高速存儲(chǔ),并集成了豐富的 I/O 端口和外設(shè)模塊。本產(chǎn)品包含
    發(fā)表于 11-21 15:14 ?1次下載

    AN0052從MM32F0130移植到MM32F0140(英文版)

    AN0052 從MM32F0130移植到MM32F0140(英文版)
    發(fā)表于 02-22 18:43 ?0次下載
    AN0052從<b class='flag-5'>MM32F</b>0130移植到<b class='flag-5'>MM32F0140</b>(英文版)

    MM32F0140 產(chǎn)品手冊(cè)(中文版)

    MM32F0140 產(chǎn)品手冊(cè)(中文版)
    發(fā)表于 02-22 18:45 ?0次下載
    <b class='flag-5'>MM32F0140</b> 產(chǎn)品手冊(cè)(中文版)

    MM32F0140 用戶手冊(cè)(英文版)

    MM32F0140 用戶手冊(cè)(英文版)
    發(fā)表于 02-22 18:46 ?0次下載
    <b class='flag-5'>MM32F0140</b> 用戶手冊(cè)(英文版)

    MM32F0140 勘誤表(中文版)

    MM32F0140 勘誤表(中文版)
    發(fā)表于 02-22 18:47 ?0次下載
    <b class='flag-5'>MM32F0140</b> 勘誤表(中文版)

    MM32F0140 勘誤表(英文版)

    MM32F0140 勘誤表(英文版)
    發(fā)表于 02-22 18:48 ?0次下載
    <b class='flag-5'>MM32F0140</b> 勘誤表(英文版)

    基于MM32F0140的UDS Bootloader學(xué)習(xí)筆記

    基于MM32F0140的UDS Bootloader學(xué)習(xí)筆記
    的頭像 發(fā)表于 10-30 17:11 ?777次閱讀
    基于<b class='flag-5'>MM32F0140</b>的UDS Bootloader學(xué)習(xí)筆記

    MM32F0140學(xué)習(xí)筆記——CRC

    MM32F0140學(xué)習(xí)筆記——CRC
    的頭像 發(fā)表于 11-10 18:27 ?619次閱讀
    <b class='flag-5'>MM32F0140</b>學(xué)習(xí)筆記——CRC

    MM32F0140 SPI學(xué)習(xí)筆記

    MM32F0140 SPI學(xué)習(xí)筆記
    的頭像 發(fā)表于 09-26 16:51 ?601次閱讀
    <b class='flag-5'>MM32F0140</b> SPI學(xué)習(xí)筆記

    MM32F0140 DMA學(xué)習(xí)筆記

    MM32F0140 DMA 學(xué)習(xí)筆記
    的頭像 發(fā)表于 09-18 16:57 ?708次閱讀
    <b class='flag-5'>MM32F0140</b> DMA學(xué)習(xí)筆記

    MM32F0140 UART學(xué)習(xí)筆記

    MM32F0140 UART學(xué)習(xí)筆記
    的頭像 發(fā)表于 09-26 16:45 ?765次閱讀
    <b class='flag-5'>MM32F0140</b> UART學(xué)習(xí)筆記

    MM32F0140 GPIO學(xué)習(xí)筆記

    MM32F0140 GPIO學(xué)習(xí)筆記
    的頭像 發(fā)表于 09-26 16:42 ?560次閱讀
    <b class='flag-5'>MM32F0140</b> GPIO學(xué)習(xí)筆記