完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
请大佬帮忙看一下,硬件连接肯定没有问题,已经核对多次了,现在的目的是写入命令,读取出来Flash W25Q128的型号
命令:{0x90,0x00,0x00,0x00,0xFF,0xFF} 返回:0xEF17 代码如下: uint16_t W25QXX_ReadIDTemp(void) { uint8_t TxData[6] = {0x90,0x00,0x00,0x00,0xFF,0xfF}; uint8_t RXData[20] = {0x00}; uint8_t Count = 0; for(Count =0;Count<6;Count++) { SPI_WRITE_TX(SPI0, TxData[Count]); /* Check SPI0 busy status 等待发送完*/ while(SPI_IS_BUSY(SPI0)); RXData[Count] = SPI_READ_RX(SPI0); printf("返回值第%d为:0x%x\n",Count,RXData[Count]); } return (RXData[4]<<8 | RXData[5]); } 目前读出来的值全都是0xFF.请大佬帮忙看一下,谢谢! |
|
相关推荐
1个回答
|
|
|
p; halSpiWriteRead(W25QXX_SPI, TxData, RXData, 6, HAL_SPI_CS_ACTIVE_LOW); while(RXData[Count]!=0xEF || RXData[Count+1]!=0x17){ Count++; if(Count>20) return 0;/*读取错误*/ } return ((RXData[Count+2] << 8) | RXData[Count+3]);}在使用SPI读取时,需要注意的几个点:1.需要在初始化SPI时配置好SPI的模式(CPOL和CPHA),以及时钟分频等参数。2.在读取时,需要等待W25QXX准备好数据再读取,可以通过检测读取到的数据是否为0xefff或者等待一定时间来判断准备好数据。3.使用SPI的时序也需要注意,发送命令和接收数据的时序需要保持一致。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1018 浏览 1 评论
1849 浏览 0 评论
1830 浏览 1 评论
3254 浏览 5 评论
3581 浏览 9 评论
1021浏览 1评论
1850浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1360浏览 1评论
1852浏览 0评论
1178浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 05:44 , Processed in 0.765662 second(s), Total 74, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
501