打印
[ZLG-ARM]

周工,这两个函数是不有问题啊???关于SD卡操作!

[复制链接]
1664|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
win2000_li|  楼主 | 2007-9-27 16:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*********************************************************************************************************************
** 函数名称: uint8 SD_ReadOCR()                        Name:      uint8 SD_ReadOCR()
** 功能描述: 读操作条件寄存器OCR                    Function: read OCR register of card
** 输   入: uint8 ocrlen  : 寄存器长度(固定为4)    Input:      uint8 ocrlen  : len of register (fixed,is 4)
             uint8 *recbuf : 接收缓冲区                          uint8 *recbuf : recbuffer    
** 输   出: 0:   正确    >0:   错误码                  Output:      0:  right        >0:  error code
**********************************************************************************************************************/
uint8 SD_ReadOCR(uint8 ocrlen, uint8 *recbuf)
{
    uint8 code param[4] = {0,0,0,0};
    uint8 xdata resp[5];
    uint8 xdata tmp;

    tmp = SD_SendCmd(CMD58, param, CMD58_R, resp);        /* 读 OCR 寄存器命令 */
    if (tmp != SD_NO_ERR)                                /* read OCR register command */
        return tmp;                                                 
                                                    
    if (resp[0] != 0)
        return SD_ERR_CMD_RESP;                             /* 响应错误 response is error */
    
    for (tmp = 0; tmp < 4; tmp++)
        recbuf[tmp] = resp[tmp + 1];                    /* 复制OCR寄存器内容到接收缓冲区 */
    
    return SD_NO_ERR;
}


/****************************************************************
** 函数名称: uint8 SD_ReadCard_Status()            
** 功能描述: 读SD/MMC卡的 Card Status 寄存器    
** 输   入: uint8 len:      寄存器长度(固定为2)        
             uint8 *recbuf : 接收缓冲区                
** 输   出: 0:   正确    >0:   错误码              
*******************************************************************/
uint8 SD_ReadCard_Status(uint8 len, uint8 *buffer)
{
    uint8 code param[4] = {0,0,0,0};

    return (SD_SendCmd(CMD13, param, CMD13_R, buffer)); /* 读 Card Status 寄存器 */
}

其中的参数uint8 ocrlen、uint8 len在函数里都没有用到!!!
请问这是为什么啊!???
如果要用的话,怎么操作??
请周工指点!!!!!!!!!

相关帖子

沙发
wlsui| | 2007-9-27 20:20 | 只看该作者

Re:

1.为什么没用到? 函数头注释已经说的很明白了,因为值是固定的
2.既然值是固定的为什么还要将其设计为一个参数?这是为了方便应用程序(软件包)的扩展

使用特权

评论回复
板凳
win2000_li|  楼主 | 2007-9-29 10:21 | 只看该作者

谢谢指点!!!

我明白了!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

142

主题

718

帖子

1

粉丝