假设IO-part是内存映射到地址0x32并且指令定义
#define portx 0x32
如何通过将值存储到相应的寄存器来构造写入端口的C语言宏?
答案 0 :(得分:0)
如果你必须使用宏,那么通常它会是这样的:
#define WRITE_PORT(port, val) *((volatile uint8_t *)(port)) = (val)
然后你可以调用它,例如
WRITE_PORT(portx, 0xff); // write 0xff to portx
请注意,这假定为8位端口。
还要注意使用volatile
来防止编译器对I / O读/写进行优化。