OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6530|回复: 5

SDIO 宏定义困惑

[复制链接]

6

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2013-7-28
在线时间
0 小时
发表于 2013-10-6 20:54:38 | 显示全部楼层 |阅读模式

  原子哥,请教一个问题,关于SDIO的。

 

我看官方的例程,看到程序前面的宏定义时,有些宏定义不知道是怎么来的,望解答。非常感谢!!!

 

 

/**

  * @brief  Mask for errors Card Status R1 (OCR Register)

  */

#define SD_OCR_ADDR_OUT_OF_RANGE        ((uint32_t)0x80000000)

#define SD_OCR_ADDR_MISALIGNED          ((uint32_t)0x40000000)

#define SD_OCR_BLOCK_LEN_ERR            ((uint32_t)0x20000000)

#define SD_OCR_ERASE_SEQ_ERR            ((uint32_t)0x10000000)

#define SD_OCR_BAD_ERASE_PARAM          ((uint32_t)0x08000000)

#define SD_OCR_WRITE_PROT_VIOLATION     ((uint32_t)0x04000000)

#define SD_OCR_LOCK_UNLOCK_FAILED       ((uint32_t)0x01000000)

#define SD_OCR_COM_CRC_FAILED           ((uint32_t)0x00800000)

#define SD_OCR_ILLEGAL_CMD              ((uint32_t)0x00400000)

#define SD_OCR_CARD_ECC_FAILED          ((uint32_t)0x00200000)

#define SD_OCR_CC_ERROR                 ((uint32_t)0x00100000)

#define SD_OCR_GENERAL_UNKNOWN_ERROR    ((uint32_t)0x00080000)

#define SD_OCR_STREAM_READ_UNDERRUN     ((uint32_t)0x00040000)

#define SD_OCR_STREAM_WRITE_OVERRUN     ((uint32_t)0x00020000)

#define SD_OCR_CID_CSD_OVERWRIETE       ((uint32_t)0x00010000)

#define SD_OCR_WP_ERASE_SKIP            ((uint32_t)0x00008000)

#define SD_OCR_CARD_ECC_DISABLED        ((uint32_t)0x00004000)

#define SD_OCR_ERASE_RESET              ((uint32_t)0x00002000)

#define SD_OCR_AKE_SEQ_ERROR            ((uint32_t)0x00000008)

#define SD_OCR_ERRORBITS                ((uint32_t)0xFDFFE008)

 

这些个我知道,手册上有,P70  Card Status  里面的

 

 

但是下面这些个不知道在哪里,手册上没找到啊

 

 

/**

  * @brief  Masks for R6 Response

  */

#define SD_R6_GENERAL_UNKNOWN_ERROR     ((uint32_t)0x00002000)

#define SD_R6_ILLEGAL_CMD               ((uint32_t)0x00004000)

#define SD_R6_COM_CRC_FAILED            ((uint32_t)0x00008000)

 

#define SD_VOLTAGE_WINDOW_SD            ((uint32_t)0x80100000)

#define SD_HIGH_CAPACITY                ((uint32_t)0x40000000)

#define SD_STD_CAPACITY                 ((uint32_t)0x00000000)

#define SD_CHECK_PATTERN                ((uint32_t)0x000001AA)

 

#define SD_MAX_VOLT_TRIAL               ((uint32_t)0x0000FFFF)

#define SD_ALLZERO                      ((uint32_t)0x00000000)

 

#define SD_WIDE_BUS_SUPPORT             ((uint32_t)0x00040000)

#define SD_SINGLE_BUS_SUPPORT           ((uint32_t)0x00010000)

#define SD_CARD_LOCKED                  ((uint32_t)0x02000000)

 

#define SD_DATATIMEOUT                  ((uint32_t)0xFFFFFFFF)

#define SD_0TO7BITS                     ((uint32_t)0x000000FF)

#define SD_8TO15BITS                    ((uint32_t)0x0000FF00)

#define SD_16TO23BITS                   ((uint32_t)0x00FF0000)

#define SD_24TO31BITS                   ((uint32_t)0xFF000000)

#define SD_MAX_DATA_LENGTH              ((uint32_t)0x01FFFFFF)

 

#define SD_HALFFIFO                     ((uint32_t)0x00000008)

#define SD_HALFFIFOBYTES                ((uint32_t)0x00000020)

 

 

望指教,谢谢各位了!!!!

                                                                                                   

STM32学习交流群 295023494
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2013-10-4
在线时间
4 小时
发表于 2013-10-6 21:42:15 | 显示全部楼层
这些定义的意思要看懂的话,你要好好的读一下stm32的数据手册了,这些定义就是给你定义了stm32里面的寄存器的地址,让编译器能正常工作,例如,如果你要开启某个端口,你要设置相应的寄存器的位,而你写程序的话,你应该不会自己去做这些事情吧,你会写一些函数,编译器要编译的时候,会自动把函数转换的。
 
希望能帮到你。
回复 支持 反对

使用道具 举报

6

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2013-7-28
在线时间
0 小时
 楼主| 发表于 2013-10-6 22:03:49 | 显示全部楼层
        哦哦 有道理  好的我仔细看看  
STM32学习交流群 295023494
回复 支持 反对

使用道具 举报

6

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2013-7-28
在线时间
0 小时
 楼主| 发表于 2013-10-6 22:12:49 | 显示全部楼层
回复【2楼】1026268087:
---------------------------------不对啊,这些是SD卡的寄存器的吧,手册上也没看到有啊!!
STM32学习交流群 295023494
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-7 11:39:08 | 显示全部楼层
回复【4楼】1874548238:
---------------------------------
这是SD卡操作的时候,SD卡寄存器(R1~R7)的一些状态位。你可以对照着看SD卡白皮书。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2013-7-28
在线时间
0 小时
 楼主| 发表于 2013-10-7 12:00:07 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
白皮书??好吧,第一次听说这玩意儿!!非常感谢原子哥!!

我找找去!!
STM32学习交流群 295023494
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-12 01:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表