写入端口的C语言宏

时间:2016-12-15 12:16:09

标签: c io macros embedded port

假设IO-part是内存映射到地址0x32并且指令定义

#define portx 0x32

如何通过将值存储到相应的寄存器来构造写入端口的C语言宏?

1 个答案:

答案 0 :(得分:0)

如果你必须使用宏,那么通常它会是这样的:

#define WRITE_PORT(port, val) *((volatile uint8_t *)(port)) = (val)

然后你可以调用它,例如

WRITE_PORT(portx, 0xff);  // write 0xff to portx

请注意,这假定为8位端口。

还要注意使用volatile来防止编译器对I / O读/写进行优化。