完善资料让更多小伙伴认识你,还能领取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的时序也需要注意,发送命令和接收数据的时序需要保持一致。
|
|
|
|
只有小组成员才能发言,加入小组>>
791 浏览 0 评论
1151 浏览 1 评论
2527 浏览 5 评论
2860 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2710 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1070浏览 3评论
193浏览 2评论
455浏览 2评论
368浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
453浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 14:55 , Processed in 1.057702 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号