欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6327|回復: 7
收起左側

關于STM32Mini板spi數(shù)據(jù)8位字符串讀寫,如何實現(xiàn)32位整數(shù)讀寫

[復制鏈接]
ID:544352 發(fā)表于 2019-7-31 11:25 | 顯示全部樓層 |閱讀模式
15黑幣
用的是原子mini板,案例里讀寫內(nèi)容的格式是8位字符串數(shù)組

//要寫入到W25Q64的字符串數(shù)組
const u8 TEXT_Buffer[]={"MiniSTM32 SPI TEST"};
u8 datatemp[SIZE];
讀寫函數(shù)↓
SPI_Flash_Write((u8*)TEXT_Buffer,FLASH_SIZE-100,SIZE);        
SPI_Flash_Read(datatemp,FLASH_SIZE-100,SIZE);        

但是在實際用的時候大部分存儲讀寫的是 32位整數(shù),讀寫函數(shù)只能按照8位傳輸,請問改如何實現(xiàn)32位整數(shù)的讀寫保存。

最佳答案

查看完整內(nèi)容

將32位數(shù)據(jù)分為4個8位數(shù)據(jù),分別傳輸,所以傳輸一個32位數(shù)據(jù)需要調(diào)用四次傳輸函數(shù) 可以使用以下方法實現(xiàn) uint32 a[19]; uint8 b[4]; uint8 temp,i; for(i=0;i> 24; b[0] = temp; temp = a >> 16; b[1] = temp; temp = a >> 8; b[2] = temp; temp = a ; b[3] = temp } 然后發(fā)送b
回復

使用道具 舉報

ID:590771 發(fā)表于 2019-7-31 11:25 | 顯示全部樓層
將32位數(shù)據(jù)分為4個8位數(shù)據(jù),分別傳輸,所以傳輸一個32位數(shù)據(jù)需要調(diào)用四次傳輸函數(shù)
可以使用以下方法實現(xiàn)
uint32 a[19];
uint8 b[4];
uint8 temp,i;
for(i=0;i<19;i++){
    temp = a[i] >> 24;
    b[0] = temp;
    temp = a[i] >> 16;
    b[1] = temp;
    temp = a[i] >> 8;
    b[2] = temp;
    temp = a[i] ;
    b[3] = temp
}
然后發(fā)送b   
回復

使用道具 舉報

ID:123289 發(fā)表于 2019-8-1 08:40 | 顯示全部樓層
將變量定義成32的,在調(diào)函數(shù)讀寫。
回復

使用道具 舉報

ID:351097 發(fā)表于 2019-8-1 09:21 | 顯示全部樓層
SPI無法實現(xiàn)單次32位傳輸,要傳輸32位,只能分為4次傳輸
回復

使用道具 舉報

ID:511461 發(fā)表于 2019-8-1 18:42 | 顯示全部樓層
yzwzfyz 發(fā)表于 2019-8-1 08:40
將變量定義成32的,在調(diào)函數(shù)讀寫。

不能這樣吧,只能是8位傳輸
回復

使用道具 舉報

ID:592101 發(fā)表于 2019-8-1 21:29 | 顯示全部樓層
SPI無法實現(xiàn)單次32位傳輸,要傳輸32位,只能分為4次傳輸
回復

使用道具 舉報

ID:592101 發(fā)表于 2019-8-1 21:30 | 顯示全部樓層
SPI無法實現(xiàn)單次32位傳輸,要傳輸32位,只能分為4次傳輸
回復

使用道具 舉報

ID:544352 發(fā)表于 2019-8-2 08:06 | 顯示全部樓層
本帖最后由 jzdcff 于 2019-8-2 10:30 編輯
artemiszty 發(fā)表于 2019-8-1 12:43
將32位數(shù)據(jù)分為4個8位數(shù)據(jù),分別傳輸,所以傳輸一個32位數(shù)據(jù)需要調(diào)用四次傳輸函數(shù)
可以使用以下方法實現(xiàn)
...

多謝,把int轉換成char再執(zhí)行讀寫函數(shù),在vs上模擬了下可行        int i = 110;
        char itc[10];
        sprintf_s(itc, "%d", i);  
        printf("%s  \n", itc);
       
        //char數(shù)組轉int
        sscanf_s(itc, "%u", &i);
        printf("%d  \n", i);

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表