打印

c语言请教

[复制链接]
1090|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lskam|  楼主 | 2013-7-18 09:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟在做一个stm32读nand flash的试验。。

#define Bank2_NAND_ADDR    ((uint32_t)0x70000000)
#define Bank_NAND_ADDR     Bank2_NAND_ADDR
#define CMD_AREA                   (uint32_t)(1<<16)
#define ADDR_AREA                  (uint32_t)(1<<17)
#define NAND_CMD_AREA                *(__IO uint8_t *)(Bank_NAND_ADDR | CMD_AREA)
#define NAND_ADDR_AREA                *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA)

uint32_t NAND_ReadID(void)
{
        uint32_t data = 0;
        NAND_CMD_AREA = 0x90;
        NAND_ADDR_AREA = 0x00;
        data = *(__IO uint32_t *)(Bank_NAND_ADDR | DATA_AREA);
   data =  ((data << 24) & 0xFF000000) |
           ((data << 8 ) & 0x00FF0000) |
           ((data >> 8 ) & 0x0000FF00) |
           ((data >> 24) & 0x000000FF) ;
   return data;
}
这是一个读nand flash id的函数。我真心看不懂。NAND_CMD_AREA和NAND_ADDR_AREA根据宏定义不是一个固定值吗?这个在函数里还给它们赋值啊,NAND_CMD_AREA = 0x90;NAND_ADDR_AREA = 0x00;还有data = *(__IO uint32_t *)(Bank_NAND_ADDR | DATA_AREA);这个是什么意思啊,。求解,大虾们

相关帖子

沙发
568581185| | 2013-8-25 19:12 | 只看该作者
好像发错板块了?

使用特权

评论回复
板凳
1988020566| | 2013-8-25 23:22 | 只看该作者
这个是根据地址写的。

使用特权

评论回复
地板
1988020566| | 2013-8-25 23:22 | 只看该作者
需要根据读写io的地址来操作的。

使用特权

评论回复
5
smilingangel| | 2013-8-26 00:01 | 只看该作者
我也看不大明白这个程序的,求大侠指点的:L

使用特权

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

本版积分规则

56

主题

128

帖子

0

粉丝