一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

物聯(lián)網(wǎng)行業(yè)中Nor Flash的軟件設(shè)計(jì)分享_W25Q128的軟件設(shè)計(jì)方案

jf_94171069 ? 來源:jf_94171069 ? 作者:jf_94171069 ? 2024-09-26 11:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一 概述

W25Q128是一種NOR Flash芯片,掉電后數(shù)據(jù)不丟失的特點(diǎn)。

W25Q128FV陣列被組織成65,536個(gè)可編程頁面,每個(gè)頁面256字節(jié)。每次最多可編程256字節(jié)。可以以16頁為一組(即一個(gè)Sector)、128頁為一組(8個(gè)Sector)、256頁為一組(16個(gè)Sector)或整個(gè)芯片(芯片擦除)進(jìn)行擦除。W25Q128FV分別有4,096個(gè)可擦除扇區(qū)和256個(gè)可擦除塊。較小的4KB扇區(qū)為需要數(shù)據(jù)和參數(shù)存儲(chǔ)的應(yīng)用程序提供了更大的靈活性。

標(biāo)準(zhǔn)SPI通信支持時(shí)鐘頻率高達(dá)104MHz,Dual SPI通信支持時(shí)鐘頻率高達(dá)208MHz,QSPI通信支持時(shí)鐘頻率高達(dá)416MHz。

注意:W25Q128一共為128M bits(16M Byte),又分為256個(gè)塊(每個(gè)塊512K bit(64K Byte)),每個(gè)塊又分為16個(gè)扇區(qū)(每個(gè)扇區(qū)32K bit(4 KByte)),每個(gè)扇區(qū)又分為16頁(每個(gè)頁2K bit(256 Byte))

二 物理特性

可以將 1 寫成 0,但是不能將 0 寫成 1,要想將 0 寫成 1,必須進(jìn)行擦除操作。如果要改變數(shù)據(jù),就需要先擦除后寫數(shù)據(jù)。

如果想要修改小于扇區(qū)大小的數(shù)據(jù),需要將整個(gè)扇區(qū)的數(shù)據(jù),在內(nèi)存中進(jìn)行備份,然后修改內(nèi)存中的數(shù)據(jù),再將數(shù)據(jù)寫回到原扇區(qū)位置。因此,驅(qū)動(dòng)要達(dá)到支持自動(dòng)完成這個(gè)過程,用戶可以使用驅(qū)動(dòng)修改任意位置的數(shù)據(jù)。

三 存儲(chǔ)結(jié)構(gòu)

W25Q128可以存儲(chǔ)16777216字節(jié),存儲(chǔ)一個(gè)字節(jié)占用一個(gè)地址,所以尋址范圍是0-(16777216-1),對(duì)應(yīng)的16進(jìn)制為0-0xFFFFFF(所以寄存器地址是24位的)

wKgaomb00wqACUqfAAG4uUcIoAw154.jpg

四 命令總覽

wKgZomb00w2Ac1-YAAHXaioKKxw748.jpg

五 組件的使用

1 Gitee鏈接地址

Demo位于amaziot_bloom_os_sdksample3rd2.1_W25Q128

Gitee源碼地址:https://gitee.com/ning./hongdou

Github源碼地址:https://github.com/ayumid/hongdou

編譯指令:.build.bat -l .amaziot_bloom_os_sdksample3rd2.1_W25Q128

2 組件功能介紹

實(shí)現(xiàn)軟件模擬SPI,驅(qū)動(dòng)W25Q128芯片,實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)。

3 代碼講解

1 drv_w25q128_delay_us

功能:該函數(shù)用于,延時(shí)。

參數(shù):

參數(shù) 釋義
count 死循環(huán)次數(shù)

返回值:無

示例:

//初始化i2c總線
ret = drv_xl9535_i2c_init();

2 drv_w25q128_gpio_set

功能:該函數(shù)用于,模擬SPI設(shè)置IO輸出電平。

參數(shù):

參數(shù) 釋義
num 引腳號(hào)
val 0 低電平,1 高電平

返回值:0 成功,-1 失敗

示例:

drv_w25q128_gpio_set(DRV_w25q128_SPI_CS, DRV_w25q128_GPIO_LOW);

3 drv_w25q128_byte_wr

功能:該函數(shù)用于,SPI寫讀一個(gè)字節(jié) mode3。

參數(shù):

參數(shù) 釋義
byte 發(fā)送數(shù)據(jù)

返回值:flash返回?cái)?shù)據(jù)

示例:

drv_w25q128_byte_wr(DRV_w25q128_DUMMY_BYTE);

4 drv_w25q128_byte_rd

功能:該函數(shù)用于,SPI只讀一個(gè)字節(jié)。

參數(shù):無

返回值:flash返回?cái)?shù)據(jù)

示例:

drv_w25q128_byte_rd(DRV_w25q128_DUMMY_BYTE);

5 drv_w25q128_busy_wait

功能:該函數(shù)用于,W25Q128 忙等待。

參數(shù):無

返回值:無

示例:

while(drv_w25q128_read_reg1() & BIT_BUSY);

6 drv_w25q128_read_reg

功能:該函數(shù)用于,讀reg。

參數(shù):無

返回值:無

示例:

while(drv_w25q128_read_reg() & BIT_BUSY);

7 drv_w25q128_read_jedecid

功能:該函數(shù)用于,讀 W25Q128 JEDEC_ID(制造商、類型、容量)。

參數(shù):無

返回值:無

示例:

sample_w25q128_uart_printf("identification is 0x%X, Device id is 0x%X, Manufacturer Device ID is 0x%X", 
                               drv_w25q128_read_identification(), drv_w25q128_read_device_id(), drv_w25q128_read_manufacturer_id());

8 drv_w25q128_read_manufacturer_id

功能:該函數(shù)用于,讀 W25Q128 制造商 ID。

參數(shù):無

返回值:無

示例:

sample_w25q128_uart_printf("identification is 0x%X, Device id is 0x%X, Manufacturer Device ID is 0x%X", 
                               drv_w25q128_read_identification(), drv_w25q128_read_device_id(), drv_w25q128_read_manufacturer_id());

9 drv_w25q128_read_device_id

功能:該函數(shù)用于,讀 W25Q128 設(shè)備 ID。

參數(shù):無

返回值:無

示例:

sample_w25q128_uart_printf("identification is 0x%X, Device id is 0x%X, Manufacturer Device ID is 0x%X", 
                               drv_w25q128_read_identification(), drv_w25q128_read_device_id(), drv_w25q128_read_manufacturer_id());

10 drv_w25q128_write_enable

功能:該函數(shù)用于,寫使能。

參數(shù):無

返回值:無

示例:

sample_w25q128_uart_printf("identification is 0x%X, Device id is 0x%X, Manufacturer Device ID is 0x%X", 
                               drv_w25q128_read_identification(), drv_w25q128_read_device_id(), drv_w25q128_read_manufacturer_id());

11 drv_w25q128_write_disable

功能:該函數(shù)用于,寫失能。

參數(shù):無

返回值:無

示例:

12 drv_w25q128_write_page

功能:該函數(shù)用于,頁編程(調(diào)用本函數(shù)寫入數(shù)據(jù)前需要先擦除扇區(qū))。

參數(shù):

參數(shù) 釋義
pbuf 數(shù)據(jù)
addr 地址
len 長度

返回值:無

示例:

drv_w25q128_write_page(pbuf, addr, pageremain);

13 drv_w25q128_read

功能:該函數(shù)用于,讀閃存數(shù)據(jù)。

參數(shù):

參數(shù) 釋義
pbuf 數(shù)據(jù)
addr 地址
len 長度

返回值:無

示例:

drv_w25q128_read((UINT8*)rx_buff1, 8181, strlen(tx_buff1));

14 drv_w25q128_sector_erase

功能:該函數(shù)用于,扇區(qū)擦除。

參數(shù):

參數(shù) 釋義
addr 地址

返回值:無

示例:

drv_w25q128_sector_erase(secpos * DRV_w25q128_SOCTOR_SIZE);

15 drv_w25q128_chip_rease

功能:該函數(shù)用于,F(xiàn)LASH整片擦除(為了安全起見,若要調(diào)用,請(qǐng)先調(diào)用 drv_w25q128_write_enable 函數(shù))。

參數(shù):無

返回值:無

示例:

16 drv_w25q128_powr_down

功能:該函數(shù)用于,掉電。

參數(shù):無

返回值:無

示例:

17 drv_w25q128_release_powr_down

功能:該函數(shù)用于,讀閃存數(shù)據(jù)。

參數(shù):

參數(shù) 釋義
pbuf 數(shù)據(jù)
addr 地址
len 長度

返回值:無

示例:

drv_w25q128_read((UINT8*)rx_buff1, 8181, strlen(tx_buff1));

18 drv_w25q128_write_nocheck

功能:該函數(shù)用于,寫數(shù)據(jù)。

參數(shù):

參數(shù) 釋義
pbuf 數(shù)據(jù)
addr 地址
len 長度

返回值:無

示例:

drv_w25q128_write_nocheck(w25q128_buffer, secpos * DRV_w25q128_SOCTOR_SIZE, DRV_w25q128_SOCTOR_SIZE);

19 drv_w25q128_write

功能:該函數(shù)用于,寫閃存數(shù)據(jù),可以使任意地址。

參數(shù):

參數(shù) 釋義
pbuf 數(shù)據(jù)
addr 地址
len 長度

返回值:無

示例:

drv_w25q128_write((UINT8*)tx_buff1, 8181, strlen(tx_buff1));

20 drv_w25q128_init

功能:該函數(shù)用于,寫數(shù)據(jù)。

參數(shù):無

返回值:無

示例:

drv_w25q128_init();

4 Demo實(shí)戰(zhàn)

4.1 創(chuàng)建一個(gè)Demo

復(fù)制20.1_file_xtu示例工程,到同一個(gè)文件夾下,修改文件名為3.1_SSD1315,如圖:

wKgaomb00w-AFrO4AABzXQF3wLE458.jpg

4.2 修改makefile

增加文件組件所在目錄頭文件路徑,和源文件路徑,如圖:

wKgZomb00xCAYBJCAABjS-wnlzE612.jpg

4.3 增加頭文件

使用代碼編輯器,將新建的工程文件加入代碼編輯器中,打開main.c,修改main.c,加入am.h等頭文件,如圖:

wKgaomb00xGAG41CAAAJBaHV2rA635.jpg

4.4 修改代碼

在Phase2Inits_exit 創(chuàng)建一個(gè)任務(wù),如圖:

wKgZomb00xKAS4x6AABJVrwH_NQ593.jpg

4.1 概述

上電后,按下按鍵,串口會(huì)打印出按下了哪一個(gè)按鍵

4.2 測試

測試步驟:

參考編譯教程,和文檔開頭的編譯指令,進(jìn)行編譯

按照編譯教程選擇對(duì)應(yīng)的選項(xiàng)

燒錄

4.3 宏定義介紹

sample_w25q128_uart_printf

輸出日志到DEBUG 串口,日志比較少,可以輸出到這個(gè)串口,如果日志比較多,需要輸出到usb口,以免不必要的問題出現(xiàn)

sample_w25q128_catstudio_printf

輸出日志到USB 串口,使用catstudio查看,catstudio查看日志需要更新對(duì)應(yīng)版本mdb.txt文件,軟件打開filtter過濾日志,只查看用戶輸出的日志

SAMPLE_W25Q128_STACK_SIZE

??臻g宏定義

4.4 全局變量介紹

sample_w25q128_task_ref

任務(wù)指針

4.5 函數(shù)介紹

Phase1Inits_enter

底層初始化,本例空

Phase1Inits_exit

底層初始化,本例空

Phase2Inits_enter

底層初始化,本例空

Phase2Inits_exit

創(chuàng)建主任務(wù),初始化INT 引腳

代碼片段:

void Phase2Inits_exit(void)
{
    int ret;

    sample_w25q128_task_stack = malloc(SAMPLE_W25Q128_STACK_SIZE);

    ret = OSATaskCreate(&sample_w25q128_task_ref, sample_w25q128_task_stack, SAMPLE_W25Q128_STACK_SIZE, 88, "sample_w25q128_task", sample_w25q128_task, NULL);
    ASSERT(ret == OS_SUCCESS);
}

sample_w25q128_task

主任務(wù),代碼發(fā)分為兩部分,一部分是發(fā)送不定長數(shù)據(jù);另一部分是上電后等待其它模塊發(fā)送的數(shù)據(jù),收到后打印到串口。

代碼片段:

static void sample_w25q128_task(void *ptr)
{
    int ret = 0;
    uint32_t identification = 0;
//    unsigned char writeBuf[30] = {0};
//    unsigned char readBuf[30] = {0};

//    ret = ql_spi_init(QL_SPI_PORT0, QL_SPI_MODE3, QL_SPI_CLK_812_5KHZ);
//    sample_w25q128_catstudio_printf("ql_spi_init ret %d", ret);

    drv_w25q128_init();

    identification = drv_w25q128_read_jedecid();
    sample_w25q128_uart_printf("identification is 0x%X, Device id is 0x%X, Manufacturer Device ID is 0x%X", 
                               drv_w25q128_read_jedecid(), drv_w25q128_read_device_id(), drv_w25q128_read_manufacturer_id());
    
//    while(1)
//    {
//        drv_w25q128_gpio_set(DRV_w25q128_SPI_CS, 0);
//        sample_w25q128_uart_printf("low");
//        OSATaskSleep(5*200);
//        drv_w25q128_gpio_set(DRV_w25q128_SPI_CS, 1);
//        sample_w25q128_uart_printf("high");
//        OSATaskSleep(5*200);
//    }
    if(identification != JEDECID)
    {
        /* 讀取錯(cuò)誤處理 */
        sample_w25q128_uart_printf("SPI read-write Error, please check the connection between MCU and SPI Flashn");
    }
    else
    {
        //讀取成功處理
        char tx_buff1[64] = "abcdefghigklmnopqrstuvwxyz0123456789";
        char rx_buff1[64] = {0};
        char tx_buff2[64] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ9876543210";
        char rx_buff2[64] = {0};
        int i = 0;
        //測試跨sector寫,并且讀出數(shù)據(jù),寫兩次,第二次保留第一次部分?jǐn)?shù)據(jù),證明數(shù)據(jù)擦除,寫入正常
        drv_w25q128_write((UINT8*)tx_buff1, 8181, strlen(tx_buff1));//從8181地址開始寫數(shù)據(jù),需要寫第二和第三個(gè)扇區(qū)
        drv_w25q128_read((UINT8*)rx_buff1, 8181, strlen(tx_buff1));
        sample_w25q128_uart_printf("read flash:%s", rx_buff1);

        if(!strncmp(tx_buff1, rx_buff1, strlen(tx_buff1)))
        {
            sample_w25q128_uart_printf("SPI read-write succeed 1");
        }
        //驗(yàn)證驅(qū)動(dòng)擦除扇區(qū)時(shí),可以保留之前有效內(nèi)容
        drv_w25q128_write((UINT8*)tx_buff2, 8186, strlen(tx_buff2));//從8186地址開始寫數(shù)據(jù),需要寫第二和第三個(gè)扇區(qū),同時(shí)不能擦掉8181 - 8186的5字節(jié)數(shù)據(jù)
        drv_w25q128_read((UINT8*)rx_buff2, 8181, strlen(tx_buff2) + 5);
        sample_w25q128_uart_printf("read flash:%s", rx_buff2);

        if(!strncmp(rx_buff2, "abcdeABCDEFGHIJKLMNOPQRSTUVWXYZ9876543210", strlen("abcdeABCDEFGHIJKLMNOPQRSTUVWXYZ9876543210")))
        {
            sample_w25q128_uart_printf("SPI read-write succeed 2");
        }
    }
//    memset(writeBuf, 0x00, sizeof(writeBuf));
//    memset(readBuf, 0x00, sizeof(readBuf));

//    writeBuf[0] = 0x9F;
    while (1)
    {
//        ret = ql_spi_write_read(QL_SPI_PORT0, readBuf, writeBuf, 1);
//        sample_w25q128_catstudio_printf("ql_spi_write_read ret %d, readBuf %02X,%02X,%02Xn", ret, readBuf[0], readBuf[1], readBuf[2]);
//        ret = ql_spi_write(QL_SPI_PORT0, writeBuf, 1);
//        sample_w25q128_catstudio_printf("ql_spi_write_read ret %d, readBuf %02Xn", ret, writeBuf[0]);
//        ret = ql_spi_read(QL_SPI_PORT0, readBuf, 3);
//        sample_w25q128_catstudio_printf("ql_spi_write_read ret %d, readBuf %02X,%02X,%02Xn", ret, readBuf[0], readBuf[1], readBuf[2]);
        OSATaskSleep(5 * 200);
    }
}

4.6 固件

wKgaomb00xOAAcqTAABoORGfLTA102.jpg

點(diǎn)擊下載 Lora Demo固件

5 生態(tài)組件鏈接

SPI NOR FLASH

本文章源自奇跡物聯(lián)開源的物聯(lián)網(wǎng)應(yīng)用知識(shí)庫Cellular IoT Wiki,更多技術(shù)干貨歡迎關(guān)注收藏Wiki:Cellular IoT Wiki 知識(shí)庫(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf)

歡迎同學(xué)們走進(jìn)AmazIOT知識(shí)庫的世界!

這里是為物聯(lián)網(wǎng)人構(gòu)建的技術(shù)應(yīng)用百科,以便幫助你更快更簡單的開發(fā)物聯(lián)網(wǎng)產(chǎn)品。

Cellular IoT Wiki初心:

在我們長期投身于蜂窩物聯(lián)網(wǎng) ODM/OEM 解決方案的實(shí)踐過程中,一直被物聯(lián)網(wǎng)技術(shù)碎片化與產(chǎn)業(yè)資源碎片化的問題所困擾。從產(chǎn)品定義、芯片選型,到軟硬件研發(fā)和測試,物聯(lián)網(wǎng)技術(shù)的碎片化以及產(chǎn)業(yè)資源的碎片化,始終對(duì)團(tuán)隊(duì)的產(chǎn)品開發(fā)交付質(zhì)量和效率形成制約。為了減少因物聯(lián)網(wǎng)碎片化而帶來的重復(fù)開發(fā)工作,我們著手對(duì)物聯(lián)網(wǎng)開發(fā)中高頻應(yīng)用的技術(shù)知識(shí)進(jìn)行沉淀管理,并基于 Bloom OS 搭建了不同平臺(tái)的 RTOS 應(yīng)用生態(tài)。后來我們發(fā)現(xiàn),很多物聯(lián)網(wǎng)產(chǎn)品開發(fā)團(tuán)隊(duì)都面臨著相似的困擾,于是,我們決定向全體物聯(lián)網(wǎng)行業(yè)開發(fā)者開放奇跡物聯(lián)內(nèi)部沉淀的應(yīng)用技術(shù)知識(shí)庫 Wiki,期望能為更多物聯(lián)網(wǎng)產(chǎn)品開發(fā)者減輕一些重復(fù)造輪子的負(fù)擔(dān)。

Cellular IoT Wiki沉淀的技術(shù)內(nèi)容方向如下:

wKgaombqoM2AYL2RAAQrZ8e-uz8392.jpg

奇跡物聯(lián)的業(yè)務(wù)服務(wù)范圍:基于自研的NB-IoT、Cat1、Cat4等物聯(lián)網(wǎng)模組,為客戶物聯(lián)網(wǎng)ODM/OEM解決方案服務(wù)。我們的研發(fā)技術(shù)中心在石家莊,PCBA生產(chǎn)基地分布在深圳、石家莊、北京三個(gè)工廠,滿足不同區(qū)域&不同量產(chǎn)規(guī)模&不同產(chǎn)品開發(fā)階段的生產(chǎn)制造任務(wù)。跟傳統(tǒng)PCBA工廠最大的區(qū)別是我們只服務(wù)物聯(lián)網(wǎng)行業(yè)客戶。

連接我們,和10000+物聯(lián)網(wǎng)開發(fā)者一起 降低技術(shù)和成本門檻

讓蜂窩物聯(lián)網(wǎng)應(yīng)用更簡單~~

哈哈你終于滑到最重要的模塊了,

千萬不!要!劃!走!忍住沖動(dòng)!~

歡迎加入飛書“開源技術(shù)交流”,隨時(shí)找到我們哦~

點(diǎn)擊鏈接如何加入奇跡物聯(lián)技術(shù)話題群(https://rckrv97mzx.feishu.cn/docx/Xskpd1cFQo7hu9x5EuicbsjTnTf)可以獲取加入技術(shù)話題群攻略

Hey 物聯(lián)網(wǎng)從業(yè)者,

你是否有了解過奇跡物聯(lián)的官方公眾號(hào)“eSIM物聯(lián)工場”呢?

這里是奇跡物聯(lián)的物聯(lián)網(wǎng)應(yīng)用技術(shù)開源wiki主陣地,歡迎關(guān)注公眾號(hào),不迷路~

及時(shí)獲得最新物聯(lián)網(wǎng)應(yīng)用技術(shù)沉淀發(fā)布

注:本文部分內(nèi)容來源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)及時(shí)聯(lián)系我們。

審核編輯 黃宇

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

    關(guān)注

    2931

    文章

    46251

    瀏覽量

    392760
  • NOR flash
    +關(guān)注

    關(guān)注

    2

    文章

    94

    瀏覽量

    23468
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    想問問外接一個(gè)flash有什么用如外接w25q128 spi接口flash

    stm32 外接了一個(gè) spi接口的flash w25q128 不知道在實(shí)際應(yīng)用到底 有什么作用求指教 大家可以把自己的用途 寫上給大家看看謝謝了
    發(fā)表于 04-03 11:16

    外擴(kuò)FLASH(W25Q128)如何存儲(chǔ)數(shù)組的數(shù)據(jù)???

    ]用于放數(shù)據(jù),現(xiàn)外擴(kuò)了一個(gè)帶有SPI接口的FLASHW25Q128),如何將dat[4096]數(shù)據(jù)存入其內(nèi),并且可以讀出呢? 非常感謝
    發(fā)表于 12-23 19:45

    W25Q128數(shù)據(jù)置頂

    請(qǐng)問各位大神一個(gè)問題,現(xiàn)在W25Q128保存著一段數(shù)據(jù),但是我想把這段數(shù)據(jù)中間的某一段刪除,同時(shí)把后面的數(shù)據(jù)全部向前移動(dòng),填滿之前刪除的數(shù)據(jù)功能類似于聊天記錄置頂,大家有什么簡單快捷的方法?
    發(fā)表于 04-09 12:37

    W25Q128芯片簡介

    1、W25Q128 是華邦公司推出的一款 SPI 接口的 NOR Flash 芯片,其存儲(chǔ)空間為 128Mbit,相當(dāng)于 16M 字節(jié)。 W25Q1
    發(fā)表于 08-13 08:49

    求大佬分享stm32 cubemx u*** spi flash w25q128 u盤調(diào)試筆記

    求大佬分享stm32 cubemx u*** spi flash w25q128 u盤調(diào)試筆記
    發(fā)表于 02-14 07:57

    基于RT-Thread的W25Q128虛擬U盤和文件系統(tǒng)如何實(shí)現(xiàn)自由切換呢

    文件系統(tǒng)RT-Thread:W25Q128虛擬U盤并搭載文件系統(tǒng)RT-Thread:STM32F407虛擬U盤,無法識(shí)別拔出問題解決方案1、W25Q128分區(qū)使用fal組件給spi flash
    發(fā)表于 08-04 10:57

    flash型號(hào)為w25q128jv spi掛載失敗是什么原因?qū)е碌?/a>

    SFDP.[SFUD] Warning: This flash device is not found or not support.[SFUD] Error: W25Q128 flash device
    發(fā)表于 10-09 14:33

    基于基于Qt的集成電路測試軟件設(shè)計(jì)方案

    基于基于Qt的集成電路測試軟件設(shè)計(jì)方案
    發(fā)表于 06-19 12:02 ?30次下載

    引射氏跨聲速風(fēng)洞流暢控制軟件設(shè)計(jì)方案

    引射氏跨聲速風(fēng)洞流暢控制軟件設(shè)計(jì)方案
    發(fā)表于 06-29 14:10 ?4次下載

    水下航行器通用的數(shù)據(jù)處理軟件設(shè)計(jì)方案

    水下航行器通用的數(shù)據(jù)處理軟件設(shè)計(jì)方案
    發(fā)表于 06-30 15:29 ?5次下載

    W25Q128 閃存芯片SPI詳解

    。/WP為寫保護(hù)管腳,/HOLD or /RESET為保持或復(fù)位引腳(通過寄存器配置)。原理圖連接W25Q128(W25Q64)將16M(8M)的容量分為256(128)個(gè)塊(Block),每個(gè)...
    發(fā)表于 11-26 17:36 ?264次下載
    <b class='flag-5'>W25Q128</b> 閃存芯片SPI詳解

    FLASH芯片(W25Q128

    簡介W25Q128FV (128M-bit)串行閃存為有限的空間、引腳和電源系統(tǒng)提供了存儲(chǔ)解決方案。25Q系列提供的靈活性和性能遠(yuǎn)遠(yuǎn)超過普通的串行F
    發(fā)表于 11-26 18:51 ?72次下載
    <b class='flag-5'>FLASH</b>芯片(<b class='flag-5'>W25Q128</b>)

    stm32 cubemx usb spi flash w25q128 u盤調(diào)試筆記

    基本代碼確定使用需求 USB SPIusb以下配置保持默認(rèn)配置即可,切記不要胡亂修改參數(shù)。spi調(diào)試spi flash我使用的flashw25q128 spi 通信模式,所以直接找一個(gè)別人寫好的驅(qū)動(dòng)就可以了。
    發(fā)表于 12-14 18:52 ?34次下載
    stm32 cubemx usb spi <b class='flag-5'>flash</b> <b class='flag-5'>w25q128</b> u盤調(diào)試筆記

    STM32CUBEMX(13)--SPI,W25Q128外部Flash移植

    省空間,提供方便,正是出于這種簡單易用的特性,越來越多的芯片集成了這種通信協(xié)議,比如 EEPROM,FLASH,實(shí)時(shí)時(shí)鐘,AD轉(zhuǎn)換器。 W25Q128 是一款SPI接口的Flash芯片,其存儲(chǔ)空間為
    的頭像 發(fā)表于 11-14 16:54 ?4636次閱讀
    STM32CUBEMX(13)--SPI,<b class='flag-5'>W25Q128</b>外部<b class='flag-5'>Flash</b>移植

    BQ79616-Q1軟件設(shè)計(jì)參考

    電子發(fā)燒友網(wǎng)站提供《BQ79616-Q1軟件設(shè)計(jì)參考.pdf》資料免費(fèi)下載
    發(fā)表于 09-03 10:37 ?5次下載
    BQ79616-<b class='flag-5'>Q</b>1<b class='flag-5'>軟件設(shè)計(jì)</b>參考