完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
代码执行到这俩个while()中就出不来了,俩个都出不来。我是做SD卡的spi方式,在第一个实验SD卡的读写都是没有问题的,能够正常的读写,后来把他移植到fatfs文件系统就出现这样的情况,实在是不解。第一个实验的成功说明硬件是好的呀。
u8 SPI_ReadWriteByte(u8 TxData) { while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET);//µÈ´ý·¢ËÍÇø¿Õ SPI_I2S_SendData(SPI2, TxData);//·¢ËÍÒ»¸öbyte while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET);//µÈ´ý½ÓÊÕÍêÒ»¸öbyte return SPI_I2S_ReceiveData(SPI2); //·µ»ØÊÕµ½µÄÊý¾Ý } 我把移植的diskio.c 的代码也贴出来,求大神指点。 #include "diskio.h" #include "STM32f10x.h" #include "mmc_sd.h" #include "usart1.h" #define BLOCK_SIZE 512 /* Block Size in Bytes */ /*-----------------------------------------------------------------------*/ /* Inidialize a Drive */ DSTATUS disk_initialize ( BYTE drv /* Physical drive nmuber (0..) */ ) { BYTE re; switch(drv) { case 0 : return RES_OK; case 1 : return RES_OK; case 2 : return RES_OK; case 3 : return RES_OK; default: return STA_NOINIT; } re= SD_Init(); if(re==0) USART1_printf(USART1, " SD Card Init Success!n"); } /*-----------------------------------------------------------------------*/ /* Return Disk Status */ DSTATUS disk_status ( BYTE drv /* Physical drive nmuber (0..) */ ) { return RES_OK; } /*-----------------------------------------------------------------------*/ /* Read Sector(s) */ DRESULT disk_read ( BYTE drv, /* Physical drive nmuber (0..) */ BYTE *buff, /* Data buffer to store read data */ DWORD sector, /* Sector address (LBA) */ BYTE count /* Number of sectors to read (1..255) */ ) { if (count > 1) { SD_ReadMultiBlock(sector, buff, count); } else { // printf( "rnÕâÊÇÒ»¸ö²âÊÔ f_open:n" ); SD_ReadSingleBlock(sector, buff); } return RES_OK; } /*-----------------------------------------------------------------------*/ /* Write Sector(s) */ #if _READONLY == 0 DRESULT disk_write ( BYTE drv, /* Physical drive nmuber (0..) */ const BYTE *buff, /* Data to be written */ DWORD sector, /* Sector address (LBA) */ BYTE count /* Number of sectors to write (1..255) */ ) { if (count > 1) { SD_WriteMultiBlock(sector, buff, count); } else { SD_WriteSingleBlock(sector, buff); } return RES_OK; } #endif /* _READONLY */ /*-----------------------------------------------------------------------*/ /* Miscellaneous Functions */ DRESULT disk_ioctl ( BYTE drv, /* Physical drive nmuber (0..) */ BYTE ctrl, /* Control code */ void *buff /* Buffer to send/receive control data */ ) { return RES_OK; } /*-----------------------------------------------------------------------*/ /* Get current time */ /*-----------------------------------------------------------------------*/ DWORD get_fattime(void) { return 0; } 我太穷了,就俩个积分了。见谅呀! |
|
相关推荐
1个回答
|
|
楼主解决了吗?我也遇到这个问题了!!!!!
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
744 浏览 0 评论
【每周推荐】采用11代Intel CPU,基于youyeetoo X1开发板搭建少儿AI智能STEAM积木平台
865 浏览 0 评论
2679 浏览 2 评论
【youyeetoo X1 windows 开发板体验】+ 影音处理和AI模型移植
2295 浏览 5 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡- 移植zbar的方法
1716 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
5829 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-25 23:47 , Processed in 0.517622 second(s), Total 67, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号