找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4495|回复: 7
收起左侧

关于STM32Mini板spi数据8位字符串读写,如何实现32位整数读写

[复制链接]
ID:544352 发表于 2019-7-31 11:25 | 显示全部楼层 |阅读模式
15黑币
用的是原子mini板,案例里读写内容的格式是8位字符串数组

//要写入到W25Q64的字符串数组
const u8 TEXT_Buffer[]={"MiniSTM32 SPI TEST"};
u8 datatemp[SIZE];
读写函数↓
SPI_Flash_Write((u8*)TEXT_Buffer,FLASH_SIZE-100,SIZE);        
SPI_Flash_Read(datatemp,FLASH_SIZE-100,SIZE);        

但是在实际用的时候大部分存储读写的是 32位整数,读写函数只能按照8位传输,请问改如何实现32位整数的读写保存。

最佳答案

查看完整内容

将32位数据分为4个8位数据,分别传输,所以传输一个32位数据需要调用四次传输函数 可以使用以下方法实现 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 } 然后发送b
回复

使用道具 举报

ID:590771 发表于 2019-7-31 11:25 | 显示全部楼层
将32位数据分为4个8位数据,分别传输,所以传输一个32位数据需要调用四次传输函数
可以使用以下方法实现
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
}
然后发送b   
回复

使用道具 举报

ID:123289 发表于 2019-8-1 08:40 | 显示全部楼层
将变量定义成32的,在调函数读写。
回复

使用道具 举报

ID:351097 发表于 2019-8-1 09:21 | 显示全部楼层
SPI无法实现单次32位传输,要传输32位,只能分为4次传输
回复

使用道具 举报

ID:511461 发表于 2019-8-1 18:42 | 显示全部楼层
yzwzfyz 发表于 2019-8-1 08:40
将变量定义成32的,在调函数读写。

不能这样吧,只能是8位传输
回复

使用道具 举报

ID:592101 发表于 2019-8-1 21:29 | 显示全部楼层
SPI无法实现单次32位传输,要传输32位,只能分为4次传输
回复

使用道具 举报

ID:592101 发表于 2019-8-1 21:30 | 显示全部楼层
SPI无法实现单次32位传输,要传输32位,只能分为4次传输
回复

使用道具 举报

ID:544352 发表于 2019-8-2 08:06 | 显示全部楼层
本帖最后由 jzdcff 于 2019-8-2 10:30 编辑
artemiszty 发表于 2019-8-1 12:43
将32位数据分为4个8位数据,分别传输,所以传输一个32位数据需要调用四次传输函数
可以使用以下方法实现
...

多谢,把int转换成char再执行读写函数,在vs上模拟了下可行        int i = 110;
        char itc[10];
        sprintf_s(itc, "%d", i);  
        printf("%s  \n", itc);
       
        //char数组转int
        sscanf_s(itc, "%u", &i);
        printf("%d  \n", i);

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表