在线时间1 小时
UID267734
ST金币0
蝴蝶豆0
注册时间2007-12-10
新手上路
- 最后登录
- 2020-7-22
|
楼主 |
发表于 2011-6-2 14:23:45
|
显示全部楼层
a0a.1 0b0c
回复:【急】STM32F130ZE在UC/OS环境下读写SD卡失败!
回复第 2 楼 安于2011-06-02 00:44:17发表:
不看程序不知道错误问题在什么地方,只能估计:
1、中断中未处理UCOS系统进入和退出中断
2、SD卡驱动中有数组操作超出数组大小。
首先感谢斑竹的即时回复!主要是程序有10M左右没法上传!
单个运行UCOS和SD卡程序均能正常运行,把两个合到一个工程中运行到红色的那一句就出现上面的错误了!
下面是我写SD卡的子程序和中断子程序
SD_Error SD_WriteBlock(u32 addr, u32 *writebuff, u16 BlockSize)
{
SD_Error errorstatus = SD_OK;
u8 power = 0, cardstate = 0;
u32 timeout = 0, bytestransferred = 0;
u32 cardstatus = 0, count = 0, restwords = 0;
u32 *tempbuff = writebuff;
if (writebuff == NULL)
{
errorstatus = SD_INVALID_PARAMETER;
return(errorstatus);
}
TransferError = SD_OK;
TransferEnd = 0;
TotalNumberOfBytes = 0;
SDIO_DataInitStructure.SDIO_DataTimeOut = SD_DATATIMEOUT;
SDIO_DataInitStructure.SDIO_DataLength = 0;
SDIO_DataInitStructure.SDIO_DataBlockSize = SDIO_DataBlockSize_1b;
SDIO_DataInitStructure.SDIO_TransferDir = SDIO_TransferDir_ToCard;
SDIO_DataInitStructure.SDIO_TransferMode = SDIO_TransferMode_Block;
SDIO_DataInitStructure.SDIO_DPSM = SDIO_DPSM_Disable;
SDIO_DataConfig(&SDIO_DataInitStructure);
SDIO_DMACmd(DISABLE);
if (SDIO_GetResponse(SDIO_RESP1) & SD_CARD_LOCKED)
{
errorstatus = SD_LOCK_UNLOCK_FAILED;
return(errorstatus);
}
/* Set the block size, both on controller and card */
if ((BlockSize > 0) && (BlockSize |
|