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

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

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

【GD32F303紅楓派開發(fā)板使用手冊】第二十五講 EXMC-外部SRAM讀寫實驗

聚沃科技 ? 2024-06-25 09:39 ? 次閱讀
wKgaomZVdiiAfR9BAB3mDFhHnZc972.png

25.1實驗內(nèi)容

通過本實驗主要學習以下內(nèi)容:

  • EXMC外設(shè)原理和配置
  • EXMC NOR/SRAM模式介紹
  • 外部SRAM接口時序和操作方式

25.2實驗原理

MCU的片內(nèi)SRAM空間有限,在做一些大量數(shù)據(jù)處理、GUI顯示等應用中片內(nèi)SRAM容量無法滿足應用需求,而外部SRAM器件讀寫速度快,不需要自刷新,工作穩(wěn)定,是性能最優(yōu)的外擴RAM選擇之一。MCU通過EXMC接口可以實現(xiàn)外部SRAM的接口通信協(xié)議,同時可映射到內(nèi)部地址實現(xiàn)和內(nèi)部ram相同的操作方式。

25.2.1EXMC外設(shè)原理

EXMC是MCU的外部存儲控制器,可以配置實現(xiàn)各類片外設(shè)備的通信協(xié)議,包括SRAM、PSRAM、NOR FLASH、NAND FLASH等,也可以通過配置實現(xiàn)一些其他通信協(xié)議,如8080接口的LCD驅(qū)動、FPGA通信等,可靈活的實現(xiàn)很多異步同步信號輸入輸出,時序時間可配置。更重要的是EXMC可通過地址映射方式實現(xiàn)MCU內(nèi)部總線協(xié)議到外部器件通信的轉(zhuǎn)換,實現(xiàn)高效的數(shù)據(jù)讀取和輸出能力。

  • EXMC系統(tǒng)架構(gòu)如下圖所示,外部SRAM使用NOR-Flash/PSRAM控制器實現(xiàn)通信協(xié)議,使用NWE、NOE、EXMC_Dx、EXMC_Ax、EXMC_NBLx、EXMC_NEx引腳和SRAM器件進行連接。
wKgaomZ6HlSAbHJ3AAEo_6A5HHE738.png

EXMC根據(jù)不同存儲器類型,對應有4個BANK,每個BANK各256MB占用了不同地址空間。訪問對應BANK區(qū)的地址時EXMC會自動按對應改區(qū)存儲類型的時序和配置進行通信。

wKgaomZ6HmOAdwJ8AAD2ZGB1kAo603.png

25.2.2EXMC NOR/SRAM模式介紹

如SRAM/NOR類型對應區(qū)域為BANK0總計256MB空間。而BANK0其中有分了4個Regions各64MB,每個Regions分別對應NE0——NE4引腳連接的器件,可以連接4個64MB SRAM就可以組成256MB的連續(xù)SRAM地址空間,也可以連接4個NOR或者2個NOR和2個SRAM的組合方式。

wKgaomZ6HnyAQYtRAADkr7I4fUE388.png
  • 訪問外部SRAM時,采用了EXMC SRAM異步訪問模式A,讀寫開始時NE先拉低,接著地址先建立并保持,同時其他信號根據(jù)當前訪問方向等進行信號對應輸出,接下來MCU或器件輸出數(shù)據(jù)信號建立,在輸出使能的邊沿進行采樣,讀寫結(jié)束NE拉高。讀寫信號時序如下圖:
wKgaomZ6HpiAdnZxAAEB8AqdCrs063.png

在這個時序過程中,很多參數(shù)可以進行配置調(diào)節(jié),其中主要是地址建立和保持、數(shù)據(jù)建立的參數(shù),一般根據(jù)速率要求、硬件信號斜率限制來平衡這個參數(shù),目標為達到一個滿足穩(wěn)定性的最高速率參數(shù)。相關(guān)參數(shù)如下表所示:

wKgZomZ6HqqAfVqbAAHXO5SPTvg605.png

25.2.3外部SRAM器件原理

sram存儲模型可以使用下圖說明:

wKgaomZ6HrmAAf0uAAIJnhVGv8M241.png

SRAM內(nèi)部包含的存儲陣列,和表格查找一樣,指定一個行地址和列地址,就可以精確地找到目標BIT單元格,這是SRAM芯片尋址的基本原理。這樣的每個單元格被稱為存儲單元,而這樣的表則被稱為存儲矩陣。地址譯碼器把N根地址線轉(zhuǎn)換成2的N次方根信號線,每根信號線對應一行或一列存儲單元,通過地址線找到具體的存儲單元,實現(xiàn)尋址。如果存儲陣列比較大,地址線會分成行和列地址,或者行、列分時復用同一地址總線,訪問數(shù)據(jù)尋址時先用地址線傳輸行地址再傳輸列地址。

在外部SRAM上,列地址對應了數(shù)據(jù)寬度,如例程所用的IS62WV51216BLL為16位寬度,故而行地址范圍是19,對應了IS62WV51216BLL的A0-A19引腳,主控芯片通過A0-A19引腳即可實現(xiàn)對行地址進行尋址訪問到對應的16BIT數(shù)據(jù)。

如下圖所示為外部SRAM接口信號,主控通過特定接口按時序即可時序地址發(fā)送、數(shù)據(jù)發(fā)送和讀取,實現(xiàn)對指定地址數(shù)據(jù)的讀寫。

wKgZomZ6HsaALUONAAethsCDsdM552.png

25.3硬件設(shè)計

如下是IS62WV51216BLL的原理圖設(shè)計,MCU通過EXMC相關(guān)對應接口連接到SRAM。

wKgZomZ6HtOAH-cWAARUkGzfwvg891.png
  • SRAM作為敏感器件,需要保證電源的穩(wěn)定、減少噪聲,串接了磁珠后供電,同時對sram的vdd引腳必須就近放置0.1uf去耦電容,若整個系統(tǒng)中存在較多其他負載,可以再增加較大電容穩(wěn)定電源。
  • SRAM的CS引腳通過MCU EXMC_NEx引腳控制,由于片選信號較為關(guān)鍵,避免MCU在EXMC多器件時懸空信號不穩(wěn)定導致誤操作,需要增加上拉電阻;在這里,上拉電阻應當靠近SRAM放置,減少連接回路上的耦合干擾。

25.4代碼解析

EXMC在初始化后,基本上通過程序的地址映射就可以進行操作了,需要根據(jù)外部器件的要求進行exmc相關(guān)參數(shù)配置,exmc可配置參數(shù)有很多,但選定好一個模式后實際在這個模式下需要配置的參數(shù)是有限的,一些結(jié)構(gòu)體成員只需要按默認參數(shù)配置即可。

25.4.1EXMC SRAM模式初始化

  • 在sram訪問時,可能會調(diào)整的exmc參數(shù)如下:
wKgaomZ6HumAGCSTAACAjtnHPqM457.png
  • 其中數(shù)據(jù)建立、地址建立、地址保持三個參數(shù)尤其關(guān)鍵,影響到最終的速率以及穩(wěn)定性,需要根據(jù)器件、電路設(shè)計、PCB設(shè)計、信號測試綜合來調(diào)試選取合適的值;其單位為AHB CLK。
wKgZomZ6HviAORpPAAAOiI0Q9QY818.png
  • 整個SRAM配置過程主要包含:GPIO和EXMC外設(shè)接口時鐘、GPIO配置、EXMC相關(guān)參數(shù)配置,完整代碼如下:
C
/*!
* 說明 emxc nor/sram模式初始化
* 輸入[1] norsram_region: @EXMC_BANK0_NORSRAM_REGION0/EXMC_BANK0_NORSRAM_REGION1/EXMC_BANK0_NORSRAM_REGION2/EXMC_BANK0_NORSRAM_REGION3
* 返回值 無
*/
void driver_exmc_sram_init(uint32_t norsram_region)
{
exmc_norsram_parameter_struct nor_init_struct;
exmc_norsram_timing_parameter_struct nor_timing_init_struct;

/* EXMC clock enable */
rcu_periph_clock_enable(RCU_EXMC);

/* EXMC enable */
rcu_periph_clock_enable(RCU_GPIOB);
rcu_periph_clock_enable(RCU_GPIOD);
rcu_periph_clock_enable(RCU_GPIOE);
rcu_periph_clock_enable(RCU_GPIOF);
rcu_periph_clock_enable(RCU_GPIOG);

/* configure EXMC_D[0~15]*/
/* PD14(EXMC_D0), PD15(EXMC_D1),PD0(EXMC_D2), PD1(EXMC_D3), PD8(EXMC_D13), PD9(EXMC_D14), PD10(EXMC_D15) */
gpio_init(GPIOD, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0 | GPIO_PIN_1| GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 |
GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15);

/* PE7(EXMC_D4), PE8(EXMC_D5), PE9(EXMC_D6), PE10(EXMC_D7), PE11(EXMC_D8), PE12(EXMC_D9),
PE13(EXMC_D10), PE14(EXMC_D11), PE15(EXMC_D12) */
gpio_init(GPIOE, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 |
GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 |
GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15);


/* configure NBL0(PE0) and NBL1(PE1) */
gpio_init(GPIOG, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_9 | GPIO_PIN_10);

/* configure NBL0(PE0) and NBL1(PE1) */
gpio_init(GPIOF, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15);

exmc_norsram_struct_para_init(&nor_init_struct);

/* config timing parameter */
nor_timing_init_struct.asyn_access_mode = EXMC_ACCESS_MODE_A;
nor_timing_init_struct.syn_data_latency = EXMC_DATALAT_2_CLK;
nor_timing_init_struct.syn_clk_division = EXMC_SYN_CLOCK_RATIO_2_CLK;
nor_timing_init_struct.bus_latency = 0;
nor_timing_init_struct.asyn_data_setuptime = 8;
nor_timing_init_struct.asyn_address_holdtime = 8;
nor_timing_init_struct.asyn_address_setuptime = 8;

/* config EXMC bus parameters */
nor_init_struct.norsram_region = norsram_region;
nor_init_struct.write_mode = EXMC_ASYN_WRITE;
nor_init_struct.extended_mode = DISABLE;
nor_init_struct.asyn_wait = DISABLE;
nor_init_struct.nwait_signal = DISABLE;
nor_init_struct.memory_write = ENABLE;
nor_init_struct.nwait_config = EXMC_NWAIT_CONFIG_BEFORE;
nor_init_struct.wrap_burst_mode = DISABLE;
nor_init_struct.nwait_polarity = EXMC_NWAIT_POLARITY_LOW;
nor_init_struct.burst_mode = DISABLE;
nor_init_struct.databus_width = EXMC_NOR_DATABUS_WIDTH_16B;
nor_init_struct.memory_type = EXMC_MEMORY_TYPE_SRAM;
nor_init_struct.address_data_mux = DISABLE;
nor_init_struct.read_write_timing = &nor_timing_init_struct;
nor_init_struct.write_timing = &nor_timing_init_struct;
exmc_norsram_init(&nor_init_struct);

/* enable the EXMC bank0 NORSRAM */
exmc_norsram_enable(norsram_region);
}

25.4.2初始化調(diào)用

  • 紅楓派開發(fā)板中SRAM的CS連接引腳為EXMC_NE0引腳,故而對應EXMC BANK0 Region0區(qū),調(diào)用初始化時我們傳入?yún)?shù)EXMC_BANK0_NORSRAM_REGION0即可。
C
//初始化exmc norsram region0
driver_exmc_norsram_init(EXMC_BANK0_NORSRAM_REGION0);

25.4.3地址映射訪問方式

  • 初始化好后EXMC BANK0 Region0區(qū)的地址可以理解就和外部SRAM形成了映射關(guān)系,讀寫這些地址時EXMC會先拉低NE0選擇SRAM進行通信和交互;

exmc驅(qū)動的頭文件中定義好了BANK的4個Region地址,我們對Region0地址讀寫即可實現(xiàn)外部SRAM的數(shù)據(jù)讀寫。

wKgZomZ6HxCAXj_WAAAxiM8Yl3o460.png
  • 同樣我們也可以直接在編譯器里定義外部sram地址范圍,直接讓編譯器把定義的變量和數(shù)組放在外部sram中,我們不用再關(guān)心其具體地址;但我們需要在main函數(shù)之前初始化好exmc,可以在啟動文件中調(diào)用exmc初始化。
wKgaomZ6Hx-AEJ_YAACmBa3sSN8279.pngwKgZomZ6HySAOOMKAAAsZBnmBAk564.png

25.4.4main函數(shù)設(shè)計

mian函數(shù)中通過指針方式以8位、16位、32位寫并讀取校驗了外部SRAM數(shù)據(jù)

C
int main(void)
{
uint32_t writereadstatus = 0;

//延時和公共驅(qū)動部分初始化
driver_init();

//打印串口初始化
bsp_uart_init(&BOARD_UART);

//初始化LED
bsp_led_group_init();
bsp_led_off(&LED0);
bsp_led_off(&LED1);

//初始化exmc norsram region0
driver_exmc_norsram_init(EXMC_BANK0_NORSRAM_REGION0);

delay_ms(100);
printf("External sram read and write examples.\r\n");


//以32位讀寫校驗
printf("32-bit read/write check.\r\n");
writereadstatus=0;
for(uint32_t index = 0; index < EXMC_SRAM_SIZE; index++ ){
REG32(EXMC_BANK0_NORSRAM_REGION0_ADDR+index*4)=0xa55aa55a;
}
for(uint32_t index = 0; index < EXMC_SRAM_SIZE; index++ ){
if(0xa55aa55a!=REG32(EXMC_BANK0_NORSRAM_REGION0_ADDR+index*4)){
writereadstatus++;
break;
}
}
if(writereadstatus){
bsp_led_on(&LED0);
printf("\r\n32-bit read/write SRAM test failed!");
}else{
bsp_led_on(&LED1);
printf("\r\n32-bit read/write SRAM test successed!");
}


//以16位讀寫校驗
printf("16-bit read/write check.\r\n");
writereadstatus=0;
for(uint32_t index = 0; index < EXMC_SRAM_SIZE; index++ ){
REG16(EXMC_BANK0_NORSRAM_REGION0_ADDR+index*2)=0xaaaa;
}
for(uint32_t index = 0; index < EXMC_SRAM_SIZE; index++ ){
if(0xaaaa!=REG16(EXMC_BANK0_NORSRAM_REGION0_ADDR+index*2)){
writereadstatus++;
break;
}
}
if(writereadstatus){
bsp_led_on(&LED0);
printf("\r\n16-bit read/write SRAM test failed!");
}else{
bsp_led_on(&LED1);
printf("\r\n16-bit read/write SRAM test successed!");
}


//以8位讀寫校驗
printf("8-bit read/write check.\r\n");
writereadstatus=0;
for(uint32_t index = 0; index < EXMC_SRAM_SIZE; index++ ){
REG8(EXMC_BANK0_NORSRAM_REGION0_ADDR+index)=0x55;
}
for(uint32_t index = 0; index < EXMC_SRAM_SIZE; index++ ){
if(0x55!=REG8(EXMC_BANK0_NORSRAM_REGION0_ADDR+index)){
writereadstatus++;
break;
}
}
if(writereadstatus){
bsp_led_on(&LED0);
printf("\r\n8-bit read/write SRAM test failed!");
}else{
bsp_led_on(&LED1);
printf("\r\n8-bit read/write SRAM test successed!");
}

while (1)
{


}
}

25.5實驗結(jié)果

連接USB轉(zhuǎn)串口,將打印讀寫校驗結(jié)果。

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635400
  • sram
    +關(guān)注

    關(guān)注

    6

    文章

    767

    瀏覽量

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

    關(guān)注

    25

    文章

    5052

    瀏覽量

    97494
  • GD32
    +關(guān)注

    關(guān)注

    7

    文章

    403

    瀏覽量

    24355
  • EXMC
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    5196
收藏 人收藏

    評論

    相關(guān)推薦

    GD32F303】星空介紹

    一、開發(fā)板介紹星空GD開發(fā)板是由旗點科技推出的一款GD32開發(fā)板,板載
    發(fā)表于 09-11 17:55

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

    本帖最后由 lustao 于 2021-10-19 09:29 編輯 感謝 發(fā)燒友學院以及廣州旗點智能科技有限公司為我和孩子提供此產(chǎn)品星空GD32F303開發(fā)板。收到了星空
    發(fā)表于 10-18 14:15

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

    https://bbs.elecfans.com/jishu_2179209_1_1.html感謝 發(fā)燒友學院以及廣州旗點智能科技有限公司為我和孩子提供此產(chǎn)品星空gd32F303開發(fā)板。收到了星空
    發(fā)表于 11-02 15:36

    【星空GD32F303開發(fā)板試用體驗】+板卡概覽

    本帖最后由 cooldog123pp 于 2021-11-6 21:07 編輯 星空GD開發(fā)板是由旗點科技推出的一款GD32開發(fā)板
    發(fā)表于 11-06 21:05

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

    一、開發(fā)板介紹星空GD開發(fā)板是由旗點科技推出的一款GD32開發(fā)板,板載
    發(fā)表于 12-10 08:27

    第二十五 同步計數(shù)器

    第二十五 同步計數(shù)器 7.3.2 同步計數(shù)器一、同步二進制計數(shù)器1.同步二進制加法計數(shù)器JK觸發(fā)器組成的4位同步二進制加法
    發(fā)表于 03-30 16:28 ?9416次閱讀
    <b class='flag-5'>第二十五</b><b class='flag-5'>講</b> 同步計數(shù)器

    STM32CUBEMX開發(fā)GD32F303(15)----外部中斷EXTI

    本章STM32CUBEMX配置STM32F103,并且在GD32F303中進行開發(fā),同時通過開發(fā)板內(nèi)進行驗證。 使用外部中斷EXTI進行驅(qū)
    的頭像 發(fā)表于 07-26 15:53 ?1346次閱讀
    STM32CUBEMX<b class='flag-5'>開發(fā)</b><b class='flag-5'>GD32F303</b>(15)----<b class='flag-5'>外部</b>中斷EXTI

    GD32F303固件庫開發(fā)

    /qq_24312945/article/details/124325797] GD32F303固件庫開發(fā)(2)----讀保護與寫保護 芯片讀保護以后,flash將不可以從外部讀取,這樣可以防止別人讀取或者盜取芯片代碼,如果想再
    的頭像 發(fā)表于 07-27 09:27 ?1183次閱讀
    <b class='flag-5'>GD32F303</b>固件庫<b class='flag-5'>開發(fā)</b>

    GD32F303紅楓開發(fā)板使用手冊第二 GPIO-流水燈實驗

    GD32F303系列MCU最多可支持?112?個通用I/O?引腳(GPIO),分別為?PA0 ~ PA15,?PB0 ~ PB15,?PC0 ~ PC15,PD0 ~ PD15,?PE0
    的頭像 發(fā)表于 05-29 10:02 ?1668次閱讀
    【<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'>使用手冊</b>】<b class='flag-5'>第二</b><b class='flag-5'>講</b> GPIO-流水燈<b class='flag-5'>實驗</b>

    GD32F303紅楓開發(fā)板使用手冊】第三 GPIO-按鍵查詢檢測實驗

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

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

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

    GD32F303紅楓開發(fā)板使用手冊】第十六 USART-DMA串口收發(fā)實驗

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

    GD32F303紅楓開發(fā)板使用手冊第二十 SPI-SPI NAND FLASH讀寫實驗

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

    GD32F303紅楓開發(fā)板使用手冊第二十三講 SDIO-SD卡讀寫實驗

    通過本實驗主要學習以下內(nèi)容: ?SDIO操作原理 ?SD卡讀寫實現(xiàn)
    的頭像 發(fā)表于 06-23 10:49 ?637次閱讀
    【<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'>使用手冊</b>】<b class='flag-5'>第二十</b>三講 SDIO-SD卡<b class='flag-5'>讀寫實驗</b>

    GD32F303紅楓開發(fā)板使用手冊第二十 USB-虛擬鍵盤實驗

    ,傳輸速度也很快,這些特性使支持USB接口的電子設(shè)備更易用、更大眾化。GD32F303系列MCU集成了USB2.0全速設(shè)備USBD模塊,可以滿足作為USB設(shè)備與主機
    的頭像 發(fā)表于 06-27 09:42 ?855次閱讀
    【<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'>使用手冊</b>】<b class='flag-5'>第二十</b>七<b class='flag-5'>講</b>  USB-虛擬鍵盤<b class='flag-5'>實驗</b>