求大神解决两句C语言代码,在stm32开发中遇到的。

2019-03-23 18:34发布


首先,小白一个,还没入门,高手别见笑,多包涵
如题,最近在看用stm32的FSMC驱动dm9000a的例程,用的bank1,FSMC_A16与DM9000a的CMD连接,16bit模式,FSMC_A[24:0]对应HADDR[25:1],有几行C语言代码不是很明白,在下边


#define DM9000_IO_CMD    *((__IO uint16_t *)0x60000000) //

#define DM9000_IO_DATA   *((__IO uint16_t *)0x60020000) //


......


static u16 ior(u16 reg)

{

    u16 read_data = 0;

        DM9000_IO_CMD =  reg;

        read_data = DM9000_IO_DATA;

    return read_data;

}

*((__IO uint16_t *)0x60000000)这个表达式意思是:这是个指针的指针?转不过来了,谁能说明白一些?为什么是16位?




最后谁有关于FSMC或是DM9002单片机驱动的资料,比较详细的。手上资料不全,都是直接上了TCP/UIP的,程序太大了,只想要一个很简单的,访问以下寄存器,发个数据什么的,现在还不会用呢.跪求,,,,,,,,

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
jeansonm
1楼-- · 2019-03-24 02:11
/ 就是代表指向0x60000000地址的指针,这里就是直接对0x60000000内存单元进行读写操作
youki12345
2楼-- · 2019-03-24 03:20
 精彩回答 2  元偷偷看……
天天1
3楼-- · 2019-03-24 04:32
打算开始学stm32 但是51学的不咋的 是升入学51好还是学stm32好?
wsmysyn
4楼-- · 2019-03-24 05:06
天天1 发表于 2015-6-7 09:24
打算开始学stm32 但是51学的不咋的 是升入学51好还是学stm32好?

我也是刚开始玩stm32,51用过,不过也没怎么精通,大学毕业设计用51做了一套板子。现在的是项目需要,而且stm32速度更快,功能更强所以就用它了,慢慢学习中
wsmysyn
5楼-- · 2019-03-24 08:52
 精彩回答 2  元偷偷看……
youki12345
6楼-- · 2019-03-24 11:04
基本上就这个意思,建议看看微机原理的书,,里面有讲怎么算地址空间的。