STM32
直播中

颜小玲

8年用户 162经验值
私信 关注
[问答]

对于IO空间映射在存储空间的结构,输入输出处理介绍

对于IO空间映射在存储空间的结构,输入输出处理   #define inp(port)         (*((volatile byte *) (port)))
  #define inpw(port)        (*((volatile word *) (port)))
  #define inpdw(port)       (*((volatile dword *)(port)))
(*((volatile byte *) (port)))      这是怎样的一些参数呢

回帖(4)

李造吉

2020-7-27 12:25:07
请问你这代码来自何处啊?
举报

唐奇

2020-7-27 12:32:05
C语言宏定义技巧 
http://www.openedv.com/posts/list/223.htm
举报

魏渝韦

2020-7-27 12:47:27
那个主要是想说明加上 volatile 禁止编译器乱优化罢了。
stm32 官方库里的寄存器定义都有加 volatile 的。
举报

欧建杭

2020-7-27 13:06:21
stm32 的寄存器定义都结构体化了,可以参考 2440 的寄存器定义,
#define GPACON               (*(volatile unsigned long *) 0x56000000)
#define GPADAT               (*(volatile unsigned long *) 0x56000004)
....
可以写成
#define GPACON               inpdw(0x56000000)
...
接收参数可以是一个指针,也可以是一个表示地址的整数
举报

更多回帖

发帖
×
20
完善资料,
赚取积分