以下c代码有什么作用?

时间:2016-02-03 08:04:00

标签: c

#define SRC_ASCLIN_ASCLIN0_RX (*(volatile Ifx_SRC_SRCR*)0xF0038084u)

此处SRC_ASCLIN_ASCLIN0_RX表示ASCLIN(异步/同步串行LIN Comm)接收服务请求。

我知道宏用于指向地址0xF0038084u。但我想要实时的例子。

正在英飞凌微控制器上进行UART开发。

1 个答案:

答案 0 :(得分:2)

宏在由预处理器扩展时,将整数文字转换为地址,指向Ifx_SRC_SRCR的指针,然后取消引用指针,以便获取或设置存储在该特定地址的内存值。

所以你可以写一下。

Ifx_SRC_SRCR value = SRC_ASCLIN_ASCLIN0_RX;

SRC_ASCLIN_ASCLIN0_RX = some_other_value;

它基本上等同于做。

int an_integer = 6;
int *pointer_to_an_integer = &an_integer;

*pointer_to_an_integer = 10;  // Equivalent to SRC_ASCLIN_ASCLIN0_RX = some_other_value above