久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > STM32F030 Nucleo-做個準確(que)的延(yan)時SysTick

STM32F030 Nucleo-做個(ge)準確(que)的(de)延時SysTick 時間:2018-08-16      來源(yuan):未(wei)知(zhi)

寫過單片(pian)機程序的(de)人(ren)都知道,軟件延時(shi)是不準確的(de),當然,當在我們可(ke)接(jie)受(shou)的(de)情(qing)況(kuang)(kuang)下,很多地(di)方還(huan)是用軟件延時(shi)的(de)!但是在情(qing)況(kuang)(kuang)允許的(de)條件下,我們還(huan)是希望延時(shi)越(yue)準確越(yue)好,這樣可(ke)以保證我們Demo的(de)一些精度或者時(shi)候準確性。

在所以的(de)(de)ST32位MCU中(zhong),基本(ben)上都(dou)存在這么一(yi)個定(ding)時(shi)器,很(hen)多人都(dou)叫它“滴答定(ding)時(shi)器”,也就(jiu)(jiu)是SysTick,在我移植過(guo)的(de)(de)好(hao)幾個實(shi)時(shi)操(cao)作(zuo)(zuo)系(xi)統中(zhong),這個滴答定(ding)時(shi)器都(dou)用來作(zuo)(zuo)為操(cao)作(zuo)(zuo)系(xi)統調度的(de)(de)定(ding)時(shi)器了。其實(shi)這個定(ding)時(shi)器的(de)(de)使用非常簡(jian)單(dan),但是基本(ben)上很(hen)多人又覺(jue)得它是神秘的(de)(de)!為毛(mao)呢??打(da)開(kai)MCU的(de)(de)DadaSheet,參考手(shou)冊(ce),都(dou)很(hen)少提到SysTick,并且(qie)提到的(de)(de)地方也就(jiu)(jiu)是一(yi)句話(hua)帶過(guo),庫手(shou)冊(ce)也就(jiu)(jiu)是說(shuo)明(ming)一(yi)下操(cao)作(zuo)(zuo)它的(de)(de)接口!然后!然后!然后就(jiu)(jiu)沒有然后了。

那(nei)么(me)我們(men)怎么(me)樣(yang)使(shi)用它(ta)呢??有可能我們(men)根本(ben)就(jiu)不了(le)解這個定時器(qi),就(jiu)算它(ta)再簡單(dan),沒(mei)資料(liao),呵(he)呵(he)!玩起來也是很費勁的啊!這個疑問先放起來!看看下(xia)一個疑問??

文章的(de)(de)(de)開頭不是(shi)“做個準確的(de)(de)(de)延(yan)時(shi)(shi)”么(me)??那么(me)它和SysTick有毛關(guan)系呢(ni)??(可能多(duo)(duo)遠單片(pian)機程序員來(lai)(lai)(lai)說,延(yan)時(shi)(shi)就是(shi):delay_ms(x)這(zhe)種(zhong)),其實我就想(xiang)用(yong)SysTick來(lai)(lai)(lai)給(gei)我做延(yan)時(shi)(shi),因為(wei)MCU的(de)(de)(de)運行(xing)時(shi)(shi)鐘在配置(zhi)好之后(hou),就基本上是(shi)穩(wen)(wen)定的(de)(de)(de)了!穩(wen)(wen)定的(de)(de)(de)時(shi)(shi)鐘數(shu)(shu)山羊(yang),那就可以計算出每數(shu)(shu)一次(ci)山羊(yang)所(suo)用(yong)的(de)(de)(de)時(shi)(shi)間(jian),更(geng)可以算出在一定時(shi)(shi)間(jian)內能數(shu)(shu)多(duo)(duo)少只山羊(yang)了(還記得小時(shi)(shi)候的(de)(de)(de)數(shu)(shu)山羊(yang)游(you)戲(xi)嗎(ma)?)。所(suo)以就是(shi)利用(yong)這(zhe)么(me)個思想(xiang)來(lai)(lai)(lai)干(gan)這(zhe)種(zhong)事。

當然(ran),問題又來了,STM32有(you)(you)那么(me)(me)多個通用(yong)定(ding)時(shi)(shi)(shi)器(qi)和特(te)殊定(ding)時(shi)(shi)(shi)器(qi),干嘛非(fei)得用(yong)SysTick啊??我個人給的答案(an)就(jiu)是(shi)(shi):(1)只要你開(kai)心,想怎么(me)(me)樣都(dou)好(hao)。(2)對于通用(yong)定(ding)時(shi)(shi)(shi)器(qi)和特(te)殊定(ding)時(shi)(shi)(shi)器(qi)而言(yan),他們除(chu)了定(ding)時(shi)(shi)(shi)功能(neng)之外,還有(you)(you)其他的很多特(te)殊復用(yong)功能(neng),比如說(shuo)PWM的輸出(chu)等等,非(fei)得這么(me)(me)干的話你這是(shi)(shi)在浪費資源(當然(ran),你若開(kai)心,便(bian)是(shi)(shi)晴天),然(ran)而,SysTick據(ju)我本人所知,它就(jiu)是(shi)(shi)ARM核用(yong)來數(shu)山(shan)羊的,就(jiu)這么(me)(me)個定(ding)時(shi)(shi)(shi)計時(shi)(shi)(shi)功能(neng),不(bu)用(yong)它用(yong)誰??

回到上面的(de)問題(ti),我們(men)怎么(me)使用SysTick定(ding)時器呢??

首先,第一件事(shi)就是找到它再(zai)時鐘(zhong)樹的位置(還是時鐘(zhong)樹,可以想(xiang)想(xiang)它的地位有多重要了)。如(ru)下圖:

上圖(tu)還是時(shi)鐘(zhong)樹(Clock Tree)從上圖(tu)我們可以得(de)到這(zhe)么幾個信息:

(1)SysTick就是(shi)內(nei)核系統定(ding)時器(不管它(ta),咱還是(shi)叫(jiao)滴答(da)定(ding)時器)

(2)SysTick的時鐘源(yuan)來自(zi)HCLK

(3)SysTick的(de)時鐘(zhong)為HCLK的(de)8分頻,即Fsystick = HCLK/8

(4)藍色框(kuang)表(biao)示系統時鐘咱在前面的帖子已經配置好了!哈哈!

好!第一件事干完了,也(ye)得(de)到了相應的(de)信息(xi),那(nei)么咱們干第二件事:

還記(ji)得在準(zhun)備資料的(de)時(shi)候,特(te)別(bie)提示,一點要將MCU的(de)編程手冊下(xia)載下(xia)來嗎???在這(zhe)里(li)就用(yong)到(dao)它(ta)了!

就(jiu)是上(shang)圖這(zhe)個東西,名字叫STM32F0xxx Cortex-M0 programming manual ---->STM32F0xxx 系列Corte-M0編程手冊。

打開這(zhe)個手冊,我們可以看(kan)到很多的東(dong)西,我簡單介(jie)紹一下(xia)吧!

瀏覽整個目錄(lu),分為5章,如(ru)下(xia):

第(di)一章(zhang)從技術角度來說,可(ke)能(neng)不是那么重要,但是對于(yu)不了解ST說明文檔的(de)(de)布局(ju)的(de)(de)童鞋而言,我個人認(ren)為還是必(bi)須瀏覽第(di)一章(zhang)的(de)(de),因為他介紹了,本文檔的(de)(de)格式(shi)和關(guan)鍵詞使用還有必(bi)要的(de)(de)說明格式(shi)等(deng),再就(jiu)是簡(jian)單的(de)(de)介紹了文章(zhang)的(de)(de)布局(ju),和所(suo)包(bao)含的(de)(de)內容,這對于(yu)閱讀文檔,找到想(xiang)要的(de)(de)資(zi)料是快速(su)的(de)(de)方法(fa)。

第二章基本上就是對(dui)Cortex-M0內核的簡單介(jie)紹了,比如(ru)模式,堆棧,內核寄存器,數據類(lei)型(xing),內存,低(di)功(gong)耗模式等等的介(jie)紹了。

第三章看(kan)到這(zhe)些(xie)想都不用(yong)想,就知道這(zhe)是(shi)Cortex-M0內核(he)的匯(hui)編(bian)指(zhi)令(ling),操作(zuo)指(zhi)令(ling)了。

第(di)四章(zhang),哈哈哈哈哈哈!看到標題沒??Core peripherals 我想英(ying)語(yu)水(shui)平再差的(de)(de)人都知(zhi)道這(zhe)是Cortex-M0的(de)(de)核(he)(he)心(xin)外設了,那就是說這(zhe)是ARM架(jia)構Cortex-M0核(he)(he)有的(de)(de)東西,并不只有ST的(de)(de)才有。OK!SysTick就是核(he)(he)心(xin)外設之(zhi)一啦!這(zhe)就是為(wei)毛找(zhao)它(ta)的(de)(de)原因了啊!哈哈!!等等,還有第(di)五章(zhang),得裝完B再說。

下(xia)去(qu)!看看!就可以看到(dao)!第五章就是記錄著修訂(ding)歷史(shi)的,如下(xia)圖:

從這個圖我們可以得(de)知,第(di)一次出這個文檔的(de)時間,而且(qie)從未修改(gai)過!哈哈 !不(bu)管了!談談感(gan)受些。

首先,我覺得這個手冊是(shi)寫給程序員看(kan)的(de)!它不(bu)是(shi)真正的(de)Cortex-M0手冊,因為(wei)從(cong)(cong)手冊的(de)內(nei)容來(lai)看(kan),它再教我們(men)怎么使用,怎么寫程序配置,而不(bu)是(shi)解釋Cortex-M0內(nei)核(當然,從(cong)(cong)名字就(jiu)知道(dao)了!哈哈!)。這一點很重(zhong)要,所(suo)以它是(shi)非常重(zhong)要的(de)手冊,比(bi)庫函數手冊重(zhong)要N倍。

OK!廢話了一大堆!先把滴(di)答定(ding)時器(qi)用起來吧!

第(di)一件事,找到庫中相應的(de)操作(zuo)函數(shu)接(jie)口,所以我(wo)在(zai)keil中全(quan)工程(cheng)搜索了一下(xia),結果如(ru)下(xia):

從上圖可以看出了(le)(le),只看到了(le)(le)兩(liang)個(ge)與(yu)SysTick相(xiang)關的(de)函(han)數(shu)(shu)(shu)(我用(yong)(yong)紅框標出了(le)(le)),分別是(shi):void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)函(han)數(shu)(shu)(shu)和__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)函(han)數(shu)(shu)(shu),(在Linux中__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)這(zhe)種類(lei)型(xing)的(de)函(han)數(shu)(shu)(shu)叫內(nei)聯函(han)數(shu)(shu)(shu),不知道這(zhe)是(shi)不是(shi)這(zhe)樣叫),其中,void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)函(han)數(shu)(shu)(shu)的(de)作用(yong)(yong),是(shi)是(shi)選擇SysTick的(de)時鐘和初始化SysTick(從注釋(shi)和函(han)數(shu)(shu)(shu)名就可以看出來了(le)(le))。__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)函(han)數(shu)(shu)(shu)就是(shi)“The function initializes the System Timer and its interrupt, and starts the System Tick Timer.

Counter is in free running mode to generate periodic interrupts.”初始化(hua)SysTick和中斷,開(kai)啟定時器。

從注釋上來分析,要讓SysTick跑(pao)起(qi)來使用這兩(liang)函(han)數的(de)確(que)足(zu)夠了(le),但是想想哪里不(bu)(bu)對勁啊(a)??咱(zan)的(de)目的(de)是做個(ge)延(yan)(yan)時(shi)程序,希望(wang)能夠精確(que)的(de)延(yan)(yan)時(shi),并且咱(zan)隨時(shi)指定延(yan)(yan)時(shi)多久,這怎么還玩(wan)起(qi)中斷來了(le),不(bu)(bu)對,不(bu)(bu)對,這不(bu)(bu)靠(kao)譜(我說的(de)不(bu)(bu)靠(kao)譜是和我們的(de)目的(de)不(bu)(bu)靠(kao)譜,并非這個(ge)庫不(bu)(bu)靠(kao)譜,哈(ha)哈(ha)!),唉!沒辦法,只(zhi)能對ST的(de)攻城獅(shi)說,你(ni)不(bu)(bu)給咱(zan)寫好,咋(za)就自己(ji)玩(wan)了(le)!哈(ha)哈(ha)!那砸門就自己(ji)玩(wan)!

那么怎么玩呢???這就(jiu)是為毛在開(kai)篇的時候一(yi)大堆廢話談《Cortex-M0編程(cheng)手冊(ce)》的原(yuan)因了,咱自己玩,得靠(kao)它啊!OK!繼續--0------>

看到上圖,我想(xiang)再不明白(bai)的(de)人(ren)也要明白(bai)了!這就(jiu)清(qing)清(qing)楚(chu)楚(chu)的(de)介紹了SysTick的(de)使用了哈!(翻譯就(jiu)算(suan)了,水平(ping)太菜了,不惡心人(ren)了)。

繼續曬圖:

哈(ha)哈(ha)哈(ha)!看到(dao)了沒(mei)??SysTick的寄存器被我(wo)看到(dao)了!既然看到(dao)了寄存器,那要搞它就不難了。哈(ha)哈(ha)!繼續再往(wang)(wang)下(xia)!再往(wang)(wang)下(xia)!再往(wang)(wang)下(xia)!

嘎嘎!你看(kan)到的沒錯,你沒眼(yan)花,這(zhe)里(li)清清楚楚的說明了(le)(le)SySTick的第一個寄存器STK_CSR的功(gong)能和使用了(le)(le)。東西比較少,我就(jiu)解(jie)釋一下:

 Bit 0 ----- 0位(wei),SysTick的(de)開(kai)關(guan),置1使(shi)能

Bit 1-----1位,SysTick的異常開關(guan),其實(shi)就是中(zhong)斷(duan)開關(guan),置1,當SysTick計(ji)時到0時,產生中(zhong)斷(duan)

注意:SysTick數山羊(yang)的(de)方(fang)式(shi)和咱(zan)小(xiao)時候(hou)玩的(de)不太一樣(yang),人家要倒著數,到0說明完成(cheng)一次數山羊(yang)

Bit 2-----2位,SysTick的時(shi)鐘資源選擇,置0,使用外部參考時(shi)鐘;置1,使用處理(li)器的時(shi)鐘

Bit 16---16位,定時器數山羊(yang)數到(dao)0的(de)時候,返回1

這(zhe)個寄(ji)存(cun)器就這(zhe)么愉快的搞定(ding)了(le)!!!哈(ha)(ha)哈(ha)(ha)哈(ha)(ha)哈(ha)(ha)!繼續裝B!

看(kan)到(dao)這(zhe)(zhe)個(ge),就知道了,STK_RVR寄存(cun)(cun)器就是(shi)SysTick的裝載寄存(cun)(cun)器了,用來(lai)裝山羊的個(ge)數的嘛,哈哈!但是(shi)注意哦(e)(e),因為(wei)SysTick是(shi)24位的定時(shi)器(前面文檔(dang)有介紹),所(suo)以別越界了哦(e)(e)!越界就像是(shi)用個(ge)吃飯的碗(wan)來(lai)裝一(yi)桶水,肯(ken)(ken)定裝不(bu)完啦(la)!肯(ken)(ken)定會(hui)溢出(chu)啦(la)!不(bu)懂(dong)啥事(shi)溢出(chu)的話,就想(xiang)想(xiang)水從碗(wan)里(li)溢出(chu)來(lai)的現象哈哈!只是(shi)在(zai)這(zhe)(zhe)里(li)是(shi)數據溢出(chu)而言!

所以這個(ge)寄(ji)存器沒啥好解釋(shi)的了(沒解釋(shi)也廢話(hua)了半天。。。汪(wang)汪(wang))!

看看下(xia)一個:

看標題就知道了,SysTick的當前(qian)計數(shu)值寄存(cun)器,想知道此時計數(shu)到哪里了,讀它就好了!

下一個!

SysTick的校準(zhun)定時器(qi)!!!!咱不校準(zhun),想(xiang)校準(zhun)的童鞋自己看(kan)看(kan)!多么簡單的東西!

到(dao)這里,我們得到(dao)的信息是:

(1)我們需要(yao)操作的寄存器:STK_CSR、STK_RVR和STK_CVR

(2)寄存器(qi)的地址:如下(xia)圖

現(xian)在要干的第一件事是,我們應該怎樣(yang)才能操(cao)作寄存器:

方法1:直接操作

在頭文件里(li)直接定義這(zhe)三個寄(ji)存器的(de)物理地址(zhi)(特別注意:寄(ji)存器是32位的(de)),相應操作寄(ji)存器的(de)某(mou)一(yi)位只需要操作TK_CSR、STK_RVR和STK_CVR的(de)相應的(de)某(mou)一(yi)位即(ji)可。就(jiu)是這(zhe)么(me)簡單!

方法(fa)2:使用(yong)庫的定義

在core_m0.h文件中,有如下定義:

從注釋來看,它說(shuo)這就是SysTick的(de)寄存(cun)器(qi)結構體!OK!怎么證明呢??

再往下:

有(you)這么幾個信(xin)息:

(1)基地址為 SCS_BASE (0xE000E000UL) ,即(ji)基地址就(jiu)是0xE000E000了

(2)SysTick的(de)基地(di)址為:(SCS_BASE + 0x0010UL),即(ji)為:0xE000E010 咦是不是和(he)STK_CSR寄存器地(di)址一(yi)樣了呢??對的(de),就是一(yi)樣的(de),再往(wang)下(xia)

(3)宏(hong)(hong)#define SysTick ((SysTick_Type *) SysTick_BASE ),首先SysTick的(de)基地址SysTick_BASE被強制(zhi)轉換為(wei)(wei)結(jie)構體SysTick_Type類型的(de)指針(zhen)(也(ye)就是以這個地址為(wei)(wei)起點sizeof(SysTick_Type)大小的(de)空間成(cheng)為(wei)(wei)這個結(jie)構體類型),然后(hou)定義成(cheng)宏(hong)(hong)SysTick,所以宏(hong)(hong)SysTick就成(cheng)為(wei)(wei)了SysTick_Type的(de)指針(zhen)。再往下(xia)分析:

(4)分析得下(xia)圖(tu):

SysTick的(de)(de)(de)(de)地址就(jiu)(jiu)是0xE000E010了(le)(le),而根據結(jie)(jie)構體的(de)(de)(de)(de)貼心,第一個成員(yuan)的(de)(de)(de)(de)地址和結(jie)(jie)構體的(de)(de)(de)(de)地址值是相等的(de)(de)(de)(de),所(suo)以(yi)就(jiu)(jiu)有了(le)(le)上圖(要是不懂的(de)(de)(de)(de)話,建議好好的(de)(de)(de)(de)去補(bu)補(bu)C語(yu)言,把基(ji)本功打(da)扎實了(le)(le),沒點功力腫(zhong)么能玩轉物(wu)理(li)地址呢??),所(suo)以(yi),結(jie)(jie)構體的(de)(de)(de)(de)成員(yuan)和SysTick的(de)(de)(de)(de)寄存(cun)器(qi)就(jiu)(jiu)對應上了(le)(le)。哈哈!其實ST的(de)(de)(de)(de)庫(ku)里面的(de)(de)(de)(de)寄存(cun)器(qi)的(de)(de)(de)(de)結(jie)(jie)構都(dou)(dou)是這么干的(de)(de)(de)(de),定義寄存(cun)器(qi)的(de)(de)(de)(de)方(fang)法都(dou)(dou)是一樣的(de)(de)(de)(de)!

當然,喜歡玩寄存器的(de)童鞋,我建議就應該用(yong)以(yi)上的(de)方法(fa)1的(de)方法(fa),這(zhe)才是玩寄存器啊,!直(zhi)接使用(yong)ST定義好(hao)的(de)結構,多沒(mei)意思!!哈哈!!

好的!完事具備!只欠程序了!如下:

 首先(xian),先(xian)定義兩個(ge)本(ben)文件全局(ju)(ju)變量(記(ji)住(zhu)這(zhe)兩個(ge)全局(ju)(ju)變量只(zhi)適用在本(ben)文件),分別(bie)是(shi):fac_ms和fac_us,啥意思(si)呢??它倆就是(shi)分別(bie)用來記(ji)錄1ms和1us時間(jian)內SysTick能計的數。

變量定(ding)義(yi)玩(wan)了,就是(shi)初始化SysTick了!其實初始化SysTick就是(shi)一(yi)句話(hua)SysTick->CTRL = 0xfffffffb;,就是(shi)操(cao)作TK_CSR寄存器(qi)。至于為毛是(shi)這(zhe)個(ge)值,那就自己看手冊了!

但是(shi),其實適用庫函數接口也是(shi)可以的:就是(shi)這個:

void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource),這個函(han)數的(de)(de)注(zhu)釋(shi)是(shi)選擇SysTick的(de)(de)時鐘(zhong),其實就(jiu)(jiu)是(shi)初始化了,但是(shi)必須注(zhu)意:參數必須是(shi):SysTick_CLKSource_HCLK_Div8即HCLK的(de)(de)8分頻,證(zheng)據就(jiu)(jiu)是(shi)前(qian)面的(de)(de)時鐘(zhong)樹。但是(shi)將到這里咱不(bu)放看(kan)(kan)看(kan)(kan)這個函(han)數的(de)(de)原(yuan)型,

從函(han)數(shu)中(zhong),也可以(yi)看出也是(shi)操作(zuo)TK_CSR寄存器,因為(wei)參(can)數(shu)必須是(shi)SysTick_CLKSource_HCLK_Div8,所以(yi)我們可以(yi)看看SysTick_CLKSource_HCLK_Div8的定義值如何:

看到沒(mei):SysTick_CLKSource_HCLK_Div8的值也是0xFFFFFFFB

OK!初始化解決了!那(nei)(nei)么,這個(ge)初始化函(han)數還有一個(ge)參數,干啥(sha)的呢??其(qi)實就(jiu)是(shi)系(xi)統(tong)時(shi)鐘啦!比如(ru),咱(zan)的系(xi)統(tong)時(shi)鐘已(yi)經配(pei)置(zhi)成48MHz,那(nei)(nei)么調用的時(shi)候,直(zhi)接SysTick_Init(48);即(ji)可,其(qi)實這個(ge)參數就(jiu)是(shi)用來計算fac_ms和fac_us的值的,公(gong)式如(ru)下:

SysTick的時鐘(zhong):Fsystick = HCLK/8

SysTick計數一次的時間:Tsystick = 1/Fsystick

有了以上兩個公(gong)式(shi)(對(dui)于(yu)哪來的公(gong)式(shi),別問我,問手冊去),那么計算fac_ms和fac_us的值就(jiu)不難(nan)了!哈哈!OK!初(chu)始化結(jie)束(shu)。

咱們(men)來個毫秒延時:

上(shang)面函數的意思就(jiu)是:延時nms,比如需(xu)要延時100毫(hao)秒,就(jiu)調(diao)用:delay_ms(100);即可。

那么(me)實現(xian)是怎么(me)樣的呢??

其實(shi)在編程手冊里(li)面就教了(le)我們怎么使用:

哈哈!人家(jia)明明白(bai)白(bai)的(de)告訴了咱怎么使用,并且列出了1,2,3,那咱就不能客氣(qi)了!哈哈!

1.將計數值裝載到裝載寄存器

2.清空(kong)計數器

3.計(ji)數開(kai)始

4.等等計數(shu)到達

5.關閉計數器

6.清空計數器

過程就(jiu)如上6步了。

注(zhu)意一點啊(a):SysTick->CTRL = 0x01;開啟計時器時是對寄存器直接(jie)賦值,而(er)不(bu)是操作某一位(wei)啊(a)!所以這樣的話,是不(bu)會產生中(zhong)斷的!因為中(zhong)斷被關了啊(a)!

OK!毫秒延(yan)時就這樣(yang)!!

下面就是微秒延時(shi)了!哈哈!

毫秒(miao)延(yan)(yan)時都講的(de)這么清楚了(le),微秒(miao)延(yan)(yan)時就不(bu)說了(le),都是一(yi)個(ge)媽生的(de)!過程(cheng)沒啥說的(de)!

來看(kan)看(kan)咱怎么調用吧!

調用(yong)就如上圖了(le)(le)!記住哦,先(xian)配置好(hao)系(xi)統時鐘哦!要是順序(xu)搞反了(le)(le),搞不出來就該打屁屁了(le)(le)哦!哈(ha)哈(ha)哈(ha)!

縱觀IT界,一個簡單(dan)的(de)東(dong)西內說個20頁可能(neng)也就(jiu)是我這種逗逼(bi)了!哈哈!不(bu)過呢!我只是想解決一些初學者(zhe)迷茫或者(zhe)吐血(xue)的(de)問(wen)題(ti)!高(gao)手的(de)問(wen)題(ti)咱(zan)不(bu)敢解決!

 
 

上一篇:STM32F030 Nucleo-多樣的SPI通信之Master標準模式-SPIFlash讀寫

下一篇:udev機制

熱點文章(zhang)推薦
華清學員就業榜單
高薪學員經驗分享
熱點(dian)新聞推薦
前臺專(zhuan)線(xian):010-82525158 企業培訓(xun)洽談專線:010-82525379 院校合作(zuo)洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部