函数怎么什么意思
请教一下这个函数怎么理解,先一个宏定义,然后定义一个结构体,之后在函数中做判断,这个if.......else if 语句怎么理解,具体代码如下,谢谢各位。#define LPC_UART LPC_UART0
typedef struct
{
union {
__Iuint8_tRBR;
__Ouint8_tTHR;
__IO uint8_tDLL;
uint32_t RESERVED0;
};
union {
__IO uint8_tDLM;
__IO uint32_t IER;
};
union {
__Iuint32_t IIR;
__Ouint8_tFCR;
};
__IO uint8_tLCR;
uint8_tRESERVED1;
__IO uint8_tMCR;
uint8_tRESERVED2;
__Iuint8_tLSR;
uint8_tRESERVED3;
__Iuint8_tMSR;
uint8_tRESERVED4;
__IO uint8_tSCR;
uint8_tRESERVED5;
__IO uint32_t ACR;
uint32_t RESERVED6;
__IO uint32_t FDR;
uint32_t RESERVED7;
__IO uint8_tTER;
uint8_tRESERVED8;
__IO uint8_tRS485CTRL;
uint8_tRESERVED9;
__IO uint8_tADRMATCH;
uint8_tRESERVED10;
__IO uint8_tRS485DLY;
uint8_tRESERVED11;
__Iuint8_tFIFOLVL;
} LPC_UART1_TypeDef;
if (LPC_UART == LPC_UART0)
{}
else if ((LPC_UART1_TypeDef *)LPC_UART == LPC_UART1)
{}
判断LPC_UART初始化没有,你上面都定义了自然没用了,结构体里面是定义的uart的相关寄存器,LPC_UART0这玩意应该是uart的基地址 wono01 发表于 2020-3-24 13:30
判断LPC_UART初始化没有,你上面都定义了自然没用了,结构体里面是定义的uart的相关寄存器,LPC_UART0这玩 ...
LPC_UART是用#define定义的宏定义,已经是LPC_UART0了,后面这个判断是不是就没意义了?宏定义还可以被结构体指针跟更改吗,否则为什么判断(LPC_UART1_TypeDef *)LPC_UART是否等于LPC_UART1呢 如果你代码没精简错的话,他就是下面这玩意,所以很奇怪,你检查下你自己是不是简化错了漏了啥,宏是不是在不同文件,到底生效了没
if (LPC_UART0 == LPC_UART0)
{}
else if ((LPC_UART1_TypeDef *)LPC_UART0== LPC_UART1)
{} zhuludiqing 发表于 2020-3-24 21:41
LPC_UART是用#define定义的宏定义,已经是LPC_UART0了,后面这个判断是不是就没意义了?宏定义还可以被结 ...
已经是LPC_UART0,后面就不会判断了。 就是移植用的,可以选择使用UART0或UART1完成功能
页:
[1]