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

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

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

【GD32F303紅楓派開發(fā)板使用手冊(cè)】第一講 RCU-時(shí)鐘配置及輸出實(shí)驗(yàn)

聚沃科技 ? 2024-05-28 14:24 ? 次閱讀
wKgaomZVdiiAfR9BAB3mDFhHnZc972.png

1.1實(shí)驗(yàn)內(nèi)容

通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容:

  • RCU時(shí)鐘原理及配置;
  • RCU時(shí)鐘輸出驗(yàn)證。

1.2實(shí)驗(yàn)原理

1.2.1RCU時(shí)鐘樹原理

GD32F303系列MCU的時(shí)鐘樹如下圖所示,由該圖可知,GD32F303系列MCU的時(shí)鐘樹可大致分為三個(gè)部分:1、主系統(tǒng)時(shí)鐘以及外設(shè)時(shí)鐘配置,如下圖所示,GD32F303系列MCU最高主頻為120MHz(CK_SYS),該系統(tǒng)時(shí)鐘根據(jù)SCS[1:0]控制位進(jìn)行選擇,可選擇來源于HSI8M、PLL或者HXTAL,PLL時(shí)鐘源可根據(jù)PLLSEL控制位選擇來自于HSI8M/2或者HXTAL以及HSI48M,之后經(jīng)過2-63倍頻(PLLMF)得到PLL時(shí)鐘,PLL時(shí)鐘可以通過USB分頻輸出給USB模塊,系統(tǒng)時(shí)鐘會(huì)直接輸出給IIS外設(shè)使用,AHB時(shí)鐘可由系統(tǒng)時(shí)鐘分頻而來,AHB時(shí)鐘最高120M,AHB時(shí)鐘會(huì)輸出給內(nèi)核以及外設(shè)使用;2、RTC以及獨(dú)立看門狗時(shí)鐘配置,如圖中2所示,RTC時(shí)鐘可選擇HXTAL/128分頻、LXTAL或者IRC40K,獨(dú)立看門狗僅可選擇IRC40K使用;3、時(shí)鐘輸出配置,如圖中3所示,內(nèi)部系統(tǒng)時(shí)鐘、IRC8M、HXTAL以及PLL/2可通過CKOUT0SEL控制位控制輸出到CKOUT引腳。

wKgZomZVdkWAM3mpAAJGsIyRZ8A958.png

1.2.2外部高速晶振原理

外部高速晶振可選擇4-32M時(shí)鐘,若系統(tǒng)應(yīng)用中有異步通信以及高精度定時(shí)等應(yīng)用建議選擇使用外部高速晶振,外部高速晶振具有更高的精度,在GD32F303應(yīng)用系統(tǒng)中建議選擇8M/16M/24M晶振,因?yàn)橥獠烤д褫斎虢oPLL的時(shí)鐘源僅可進(jìn)行1分頻或者2分頻,選擇其他頻率的晶振難以配置到最高120M系統(tǒng)時(shí)鐘。

HXTAL具有時(shí)鐘監(jiān)測(cè)的功能,置位CKMEN控制位將會(huì)使能該功能,使能后一旦監(jiān)測(cè)到HXTAL失效,HXTAL將自動(dòng)被禁止,中斷寄存器RCU_INT中的HXTAL時(shí)鐘阻塞中斷標(biāo)志位CKMIF將被置‘1’,并產(chǎn)生NMI不可屏蔽中斷,使用者可在NMI中斷中切換到內(nèi)部時(shí)鐘并重新進(jìn)行時(shí)鐘配置,可用于HXTAL失效情況下的異常處理。

1.2.3內(nèi)部高速時(shí)鐘原理

GD32F303系列MCU的內(nèi)部高速時(shí)鐘有IRC8M和IRC48M,IRC8M較為常用,且具有更高的精度,另外需注意內(nèi)部高速時(shí)鐘并非晶振,電路上為RC振蕩器,因而比較容易受外部環(huán)境的影響,如下圖所示,常溫下IRC8M的精度約為1%。

wKgZomZVdmqASDu9AAJMncg3e8o488.png

1.2.4內(nèi)部低速時(shí)鐘原理

GD32F303系列MCU內(nèi)部有IRC40K低速時(shí)鐘,該低速時(shí)鐘可以為RTC或FWDG使用,如下圖所示,據(jù)測(cè)試IRC40K精度較差,如果作為RTC時(shí)鐘源可能存在較大偏差的情況,如果使用者使用RTC建議可以選擇LXTAL外部低頻晶振,或者使用內(nèi)部高速時(shí)鐘對(duì)IRC40K進(jìn)行校準(zhǔn)(校準(zhǔn)方法為使用內(nèi)部高速時(shí)鐘對(duì)IRC40K進(jìn)行捕獲,然后調(diào)整IRC40K的trim值)。

wKgZomZVdt6AOVflAAF6jCGpbWw997.png

1.2.5外部低速晶振原理

外部低速晶振一般選擇32.768KHZ的晶振,外部低速晶振可以選擇作為RTC時(shí)鐘,在這種情況下,RTC可以在VDD掉電以及VBAT不掉電的情況下工作。

1.2.6時(shí)鐘輸出功能

時(shí)鐘輸出功能可以輸出4-120MHz的時(shí)鐘,具體通過配置CKOUT0SEL控制位進(jìn)行實(shí)現(xiàn),另外需要將CKOUT引腳(一般為PA8引腳)配置為推挽輸出的模式,有關(guān)時(shí)鐘輸出選擇配置如下表所示。

wKgZomZVd5yAHskTAADHs2bcfGQ811.png

1.3硬件設(shè)計(jì)

本節(jié)主要介紹開發(fā)板外掛高速晶振以及低速晶振電路。

1.3.1外部高速晶振電路設(shè)計(jì)

外部高速晶振電路如下圖所示,其中外部高速晶振選擇8MHZ,匹配電容選擇20pf,該匹配電容可以參考以下公式:C1=C2=2*(Cload-CS),其中Cload為晶體負(fù)載電容,Cs為PCB以及MCU引腳的雜散電容,典型值為10pf,因而可以選擇負(fù)載電容約為20pf的晶振,匹配電容即可選擇20pf,需要注意晶振盡量靠近MCU引腳擺放,且晶振引腳走線盡量等長(zhǎng),PCB區(qū)域盡量禁空,走線可以包地,另外若走線不等長(zhǎng),匹配電容可以適當(dāng)選擇不同的匹配電容以適配不同的雜散電容。R28的1M歐姆為晶振引腳的反饋電阻,該反饋電阻的作用為減少晶振輸出波形的諧波分量,提高晶振穩(wěn)定性,該電阻并非必須,MCU內(nèi)部也有400K的反饋電阻,從筆者使用來看,并不影響晶振起振及使用,但建議電路上可以選擇保留。R29的100R電阻為晶振引腳串聯(lián)電阻,用于限流以及引腳保護(hù)。另外測(cè)量晶振引腳波形時(shí)可能存在OSC_IN腳波形為較好的正弦波,OSC_OUT引腳波形可能存在畸變,該現(xiàn)象為正常現(xiàn)象,不影響使用,MCU內(nèi)部使用的為OSC_IN引腳的波形,并通過內(nèi)部整形方波供給MCU使用。

wKgaomZVd6WAK3CjAACM1r1sqMU103.png

1.3.2外部低速晶振電路設(shè)計(jì)

外部低速晶振電路如下圖所示,外部低速晶振選擇32.768KHz,匹配電容選擇10pf,C1 = C2 = 2*(CLOAD - CS),其中CS為PCB和MCU引腳的雜散電容, 經(jīng)驗(yàn)值在2pF-7pF之間,建議以5pF為參考值計(jì)算。推薦選用外部晶體時(shí),盡量選擇晶體負(fù)載電容在10pF左右的,這樣外部所接匹配電容C1和C2電容值為10pF即可,且PCB Layout時(shí)盡可能近地靠近晶振引腳。

wKgZomZVd8yAHJ2ZAAB8t60rjMo121.png

1.4代碼解析

本節(jié)主要進(jìn)行例程代碼解析,主要分成兩個(gè)部分:時(shí)鐘配置以及CKOUT時(shí)鐘輸出驗(yàn)證。

1.4.1時(shí)鐘配置代碼解析

時(shí)鐘配置是一個(gè)MCU系統(tǒng)的基礎(chǔ),讀者在開發(fā)MCU項(xiàng)目時(shí)需要首先明確當(dāng)前系統(tǒng)所運(yùn)行的主頻具體是多少,這樣才能夠準(zhǔn)確的進(jìn)行外設(shè)時(shí)鐘配置,定時(shí)器定時(shí)才會(huì)準(zhǔn)確,ADC采樣率才會(huì)準(zhǔn)確,通信的速率才會(huì)準(zhǔn)確等等,系統(tǒng)超頻也會(huì)帶來不可預(yù)料的風(fēng)險(xiǎn),因而建議開發(fā)者在開發(fā)初期就需要明確系統(tǒng)主頻配置,有條件的情況下可以通過定時(shí)或者時(shí)鐘輸出進(jìn)行校驗(yàn)。

本例程中時(shí)鐘配置函數(shù)代碼如以下所示,該代碼實(shí)現(xiàn)通過外部8M晶振進(jìn)行PLL倍頻,實(shí)現(xiàn)120MHz主系統(tǒng)時(shí)鐘的功能。

C
void rcu_system_clk_config_120M(void)
{
uint32_t timeout = 0U;
uint32_t stab_flag = 0U;

/* 使能外部8M晶振 */
RCU_CTL |= RCU_CTL_HXTALEN;

/* 等待外部晶振ready,或者外部晶振未ready情況下超時(shí)退出 */
do{
timeout++;
stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB);
}while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout));

/* 如果外部晶振未ready,程序卡死進(jìn)入while(1),讀者若避免卡死可在此處切換到內(nèi)部振蕩器使用 */
if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){
while(1){
}
}

RCU_APB1EN |= RCU_APB1EN_PMUEN;
PMU_CTL |= PMU_CTL_LDOVS;

/* AHB一分頻,系統(tǒng)時(shí)鐘等于AHB時(shí)鐘 */
RCU_CFG0 |= RCU_AHB_CKSYS_DIV1;
/* APB2一分頻,APB2高速外設(shè)時(shí)鐘等于AHB時(shí)鐘 */
RCU_CFG0 |= RCU_APB2_CKAHB_DIV1;
/* APB1 二分頻,APB1低速外設(shè)時(shí)鐘等于AHB時(shí)鐘/2 */
RCU_CFG0 |= RCU_APB1_CKAHB_DIV2;

/* 選擇HXTAL/2作為PLL時(shí)鐘源,開發(fā)板外部晶振為8M,即8/2=4M作為PLL時(shí)鐘源*/
RCU_CFG0 &= ~(RCU_CFG0_PLLSEL | RCU_CFG0_PREDV0);
RCU_CFG0 |= (RCU_PLLSRC_HXTAL_IRC48M | RCU_CFG0_PREDV0);

/* CK_PLL = (CK_HXTAL/2) * 30 = 120 MHz */
/* 若希望調(diào)整系統(tǒng)時(shí)鐘,可以調(diào)整RCU_PLL_MUL30倍頻因子即可 */
RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4 | RCU_CFG0_PLLMF_5);
RCU_CFG0 |= RCU_PLL_MUL30;

/* 使能 PLL */
RCU_CTL |= RCU_CTL_PLLEN;

/* 等待PLL Ready */
while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){
}

/* 使能PLL高驅(qū)模式 */
PMU_CTL |= PMU_CTL_HDEN;
while(0U == (PMU_CS & PMU_CS_HDRF)){
}

/* 選擇PLL高驅(qū)模式 */
PMU_CTL |= PMU_CTL_HDS;
while(0U == (PMU_CS & PMU_CS_HDSRF)){
}

/* 選擇PLL作為系統(tǒng)時(shí)鐘 */
RCU_CFG0 &= ~RCU_CFG0_SCS;
RCU_CFG0 |= RCU_CKSYSSRC_PLL;

/* 等待PLL被選擇作為系統(tǒng)時(shí)鐘 */
while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){
}
}

如果讀者使用的是其他頻率的晶振,可以選擇修改PLL倍頻因子以及HXTAL的宏定義即可,比如若讀者選擇16MHz晶振,可以將歷程中RCU_PLL_MUL30的倍頻因子修改為RCU_PLL_MUL15,且將HXTAL_VALUE宏定義修改為16000000。

1.4.2CKOUT時(shí)鐘輸出代碼解析

CKOUT時(shí)鐘輸出配置代碼如下所示,該函數(shù)無形參輸入,首先將PA8配置為推挽輸出,然后將系統(tǒng)時(shí)鐘配置為CKOUT輸出。

C
void ckout_config(void)
{
/* 以下兩句配置PA8作為推挽輸出,即作為CKOUT功能輸出 */
rcu_periph_clock_enable(RCU_GPIOA);
gpio_init(GPIOA,GPIO_MODE_AF_PP,GPIO_OSPEED_MAX,GPIO_PIN_8);
/* 以下語句為配置系統(tǒng)時(shí)鐘輸出到CKOUT引腳,若希望輸出其他時(shí)鐘可以修改該函數(shù)形參,
在GD32F303上僅可以輸出以下時(shí)鐘:RCU_CKOUT0SRC_CKSYS,RCU_CKOUT0SRC_IRC8M,RCU_CKOUT0SRC_HXTAL,RCU_CKOUT0SRC_CKPLL_DIV2*/
rcu_ckout0_config(RCU_CKOUT0SRC_CKSYS);
}

1.4.3主函數(shù)代碼解析

本例程主函數(shù)如下所示,首先使用外部8M晶振倍頻配置系統(tǒng)時(shí)鐘為120MHZ,然后通過PA8將系統(tǒng)時(shí)鐘輸出。

C
int main(void)
{

bsp_uart_init(&BOARD_UART); /* 板載UART初始化 */
printf("Example ofClock configuration and output.\r\n");
rcu_system_clk_config_120M(); /*使用外部8M晶振進(jìn)行倍頻,將系統(tǒng)時(shí)鐘配置為120M*/

ckout_config(); /*通過PA8(CKOUT)將系統(tǒng)時(shí)鐘輸出*/
while (1)
{}
}

1.5實(shí)驗(yàn)結(jié)果

首先將PA8外接示波器,然后將本例程編譯通過后,燒錄到紅楓派開發(fā)板中,通過示波器可以觀察到系統(tǒng)時(shí)鐘輸出,如下圖所示,本例程中系統(tǒng)時(shí)鐘輸出為120MHz。

wKgZomZVeBqAdnI-AAoDokehFFM794.png

教程GD32 MCU方案商聚沃科技原創(chuàng)發(fā)布,了解更多GD32 MCU教程,關(guān)注聚沃科技官網(wǎng)

聲明:本文內(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)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6026

    文章

    44452

    瀏覽量

    630832
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4834

    瀏覽量

    96836
  • GD32F3
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    3833
  • rcu
    rcu
    +關(guān)注

    關(guān)注

    0

    文章

    21

    瀏覽量

    5425
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32CUBEMX開發(fā)GD32F303(6)----GPIO輸入函數(shù)說明

    本章STM32CUBEMX配置STM32F103,并且在GD32F303中進(jìn)行開發(fā),同時(shí)通過GD32303C_START
    的頭像 發(fā)表于 11-25 16:06 ?1480次閱讀
    STM32CUBEMX<b class='flag-5'>開發(fā)</b><b class='flag-5'>GD32F303</b>(6)----GPIO輸入函數(shù)說明

    STM32CUBEMX開發(fā)GD32F303(8)----USART收發(fā)配置

    本章STM32CUBEMX配置STM32F103,并且在GD32F303中進(jìn)行開發(fā),同時(shí)通過GD32303C_START
    的頭像 發(fā)表于 11-29 10:40 ?2998次閱讀
    STM32CUBEMX<b class='flag-5'>開發(fā)</b><b class='flag-5'>GD32F303</b>(8)----USART收發(fā)<b class='flag-5'>配置</b>

    STM32CUBEMX開發(fā)GD32F303(9)----USART通過DMA收發(fā)

    概述 本章STM32CUBEMX配置STM32F103,并且在GD32F303中進(jìn)行開發(fā),同時(shí)通過GD32303C_START
    的頭像 發(fā)表于 11-29 11:15 ?1961次閱讀
    STM32CUBEMX<b class='flag-5'>開發(fā)</b><b class='flag-5'>GD32F303</b>(9)----USART通過DMA收發(fā)

    GD32F303】星空介紹

    、開發(fā)板介紹星空GD開發(fā)板是由旗點(diǎn)科技推出的GD
    發(fā)表于 09-11 17:55

    【星空GD32F303開發(fā)板試用體驗(yàn)】開箱+環(huán)境搭建

    開發(fā)板得準(zhǔn)備操作系統(tǒng)(win10),開發(fā)軟件(mdk5),與此 星空GD32F303開發(fā)板 下傳的 jlink連接器組件(20線
    發(fā)表于 10-18 14:15

    【星空GD32F303開發(fā)板試用體驗(yàn)】開箱+環(huán)境搭建

    GD32F303開發(fā)板得準(zhǔn)備操作系統(tǒng)(win10),開發(fā)軟件(mdk5),與此 星空GD32F303
    發(fā)表于 11-02 15:36

    星空GD32F303開發(fā)板的相關(guān)資料下載

    、開發(fā)板介紹星空GD開發(fā)板是由旗點(diǎn)科技推出的GD
    發(fā)表于 12-10 08:27

    STM32CUBEMX開發(fā)GD32F303(12)----輸出PWM及修改PWM頻率與占空比

    本章STM32CUBEMX配置STM32F103,并且在GD32F303中進(jìn)行開發(fā),同時(shí)通過開發(fā)板內(nèi)進(jìn)行驗(yàn)證。 本章主要
    的頭像 發(fā)表于 11-30 14:40 ?3692次閱讀
    STM32CUBEMX<b class='flag-5'>開發(fā)</b><b class='flag-5'>GD32F303</b>(12)----<b class='flag-5'>輸出</b>PWM及修改PWM頻率與占空比

    STM32CUBEMX開發(fā)GD32F303(14)----IIC之配置OLED

    本章STM32CUBEMX配置STM32F103,并且在GD32F303中進(jìn)行開發(fā),同時(shí)通過開發(fā)板內(nèi)進(jìn)行驗(yàn)證。
    的頭像 發(fā)表于 07-26 13:52 ?1836次閱讀
    STM32CUBEMX<b class='flag-5'>開發(fā)</b><b class='flag-5'>GD32F303</b>(14)----IIC之<b class='flag-5'>配置</b>OLED

    GD32F303固件庫(kù)開發(fā)

    的可以加群申請(qǐng):615061293 。 GD32F303固件庫(kù)開發(fā)(1)----前期準(zhǔn)備與燒錄 使用GDLINK、jlink、串口下載程序到GD芯片。 [https://blog.csdn.net
    的頭像 發(fā)表于 07-27 09:27 ?1047次閱讀
    <b class='flag-5'>GD32F303</b>固件庫(kù)<b class='flag-5'>開發(fā)</b>

    GD32F303紅楓開發(fā)板使用手冊(cè)】第二 GPIO-流水燈實(shí)驗(yàn)

    GD32F303系列MCU最多可支持?112?個(gè)通用I/O?引腳(GPIO),分別為?PA0 ~ PA15,?PB0 ~ PB15,?PC0 ~ PC15,PD0 ~ PD15,?PE0
    的頭像 發(fā)表于 05-29 10:02 ?1341次閱讀
    【<b class='flag-5'>GD32F303</b><b class='flag-5'>紅楓</b><b class='flag-5'>派</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>使用手冊(cè)</b>】第二<b class='flag-5'>講</b> GPIO-流水燈<b class='flag-5'>實(shí)驗(yàn)</b>

    GD32F303紅楓開發(fā)板使用手冊(cè)】第三 GPIO-按鍵查詢檢測(cè)實(shí)驗(yàn)

    GD32F303系列MCU GPIO輸入配置結(jié)構(gòu)如下圖所示,輸入可配置上下拉電阻,通過施密特觸發(fā)器后可通過備用功能輸入或者通過輸入狀態(tài)寄存器進(jìn)行讀取。
    的頭像 發(fā)表于 05-30 10:02 ?684次閱讀
    【<b class='flag-5'>GD32F303</b><b class='flag-5'>紅楓</b><b class='flag-5'>派</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>使用手冊(cè)</b>】第三<b class='flag-5'>講</b> GPIO-按鍵查詢檢測(cè)<b class='flag-5'>實(shí)驗(yàn)</b>

    GD32F303紅楓開發(fā)板使用手冊(cè)】第五 FMC-片內(nèi)Flash擦寫讀實(shí)驗(yàn)

    MC即Flash控制器,其提供了片上Flash操作所需要的所有功能,在GD32F303系列MCU中,F(xiàn)lash前256K字節(jié)空間內(nèi),?CPU執(zhí)行指令零等待,具有相同主頻下最快的代碼執(zhí)行效率。FMC也
    的頭像 發(fā)表于 06-02 10:05 ?589次閱讀
    【<b class='flag-5'>GD32F303</b><b class='flag-5'>紅楓</b><b class='flag-5'>派</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>使用手冊(cè)</b>】第五<b class='flag-5'>講</b> FMC-片內(nèi)Flash擦寫讀<b class='flag-5'>實(shí)驗(yàn)</b>

    GD32F303紅楓開發(fā)板使用手冊(cè)】第十六 USART-DMA串口收發(fā)實(shí)驗(yàn)

    在前面ADC章節(jié)中,我們介紹了DMA的工作原理,這里就不多做介紹。從GD32F303用戶手冊(cè)中可以查到,各串口的TX和RX分別對(duì)應(yīng)DMA的不同通道,比如USART0的TX對(duì)應(yīng)DMA0的通道3,而RX對(duì)應(yīng)DMA0的通道4。
    的頭像 發(fā)表于 06-15 09:54 ?858次閱讀
    【<b class='flag-5'>GD32F303</b><b class='flag-5'>紅楓</b><b class='flag-5'>派</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>使用手冊(cè)</b>】第十六<b class='flag-5'>講</b> USART-DMA串口收發(fā)<b class='flag-5'>實(shí)驗(yàn)</b>

    GD32F303紅楓開發(fā)板使用手冊(cè)】第二十 SPI-SPI NAND FLASH讀寫實(shí)驗(yàn)

    通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容: ?SPI通信協(xié)議,參考19.2.1東方紅開發(fā)板使用手冊(cè) ?GD32F303 SPI操作方式,參考19.2.2東方紅
    的頭像 發(fā)表于 06-20 09:50 ?638次閱讀
    【<b class='flag-5'>GD32F303</b><b class='flag-5'>紅楓</b><b class='flag-5'>派</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>使用手冊(cè)</b>】第二十<b class='flag-5'>講</b> SPI-SPI NAND FLASH讀寫<b class='flag-5'>實(shí)驗(yàn)</b>