打印
[LPC]

函数怎么什么意思

[复制链接]
861|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuludiqing|  楼主 | 2020-3-23 23:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教一下这个函数怎么理解,先一个宏定义,然后定义一个结构体,之后在函数中做判断,这个if.......else if 语句怎么理解,具体代码如下,谢谢各位。
#define LPC_UART        LPC_UART0
typedef struct
{
  union {
  __I  uint8_t  RBR;
  __O  uint8_t  THR;
  __IO uint8_t  DLL;
       uint32_t RESERVED0;
  };
  union {
  __IO uint8_t  DLM;
  __IO uint32_t IER;
  };
  union {
  __I  uint32_t IIR;
  __O  uint8_t  FCR;
  };
  __IO uint8_t  LCR;
       uint8_t  RESERVED1[3];
  __IO uint8_t  MCR;
       uint8_t  RESERVED2[3];
  __I  uint8_t  LSR;
       uint8_t  RESERVED3[3];
  __I  uint8_t  MSR;
       uint8_t  RESERVED4[3];
  __IO uint8_t  SCR;
       uint8_t  RESERVED5[3];
  __IO uint32_t ACR;
       uint32_t RESERVED6;
  __IO uint32_t FDR;
       uint32_t RESERVED7;
  __IO uint8_t  TER;
       uint8_t  RESERVED8[27];
  __IO uint8_t  RS485CTRL;
       uint8_t  RESERVED9[3];
  __IO uint8_t  ADRMATCH;
       uint8_t  RESERVED10[3];
  __IO uint8_t  RS485DLY;
       uint8_t  RESERVED11[3];
  __I  uint8_t  FIFOLVL;
} LPC_UART1_TypeDef;


if (LPC_UART == LPC_UART0)
{}
else if ((LPC_UART1_TypeDef *)LPC_UART == LPC_UART1)
{}


使用特权

评论回复

相关帖子

沙发
wono01| | 2020-3-24 13:30 | 只看该作者
判断LPC_UART初始化没有,你上面都定义了自然没用了,结构体里面是定义的uart的相关寄存器,LPC_UART0这玩意应该是uart的基地址

使用特权

评论回复
板凳
zhuludiqing|  楼主 | 2020-3-24 21:41 | 只看该作者
wono01 发表于 2020-3-24 13:30
判断LPC_UART初始化没有,你上面都定义了自然没用了,结构体里面是定义的uart的相关寄存器,LPC_UART0这玩 ...

LPC_UART是用#define定义的宏定义,已经是LPC_UART0了,后面这个判断是不是就没意义了?宏定义还可以被结构体指针跟更改吗,否则为什么判断(LPC_UART1_TypeDef *)LPC_UART是否等于LPC_UART1呢

使用特权

评论回复
地板
wono01| | 2020-3-25 10:17 | 只看该作者
如果你代码没精简错的话,他就是下面这玩意,所以很奇怪,你检查下你自己是不是简化错了漏了啥,宏是不是在不同文件,到底生效了没
if (LPC_UART0 == LPC_UART0)
{}
else if ((LPC_UART1_TypeDef *)LPC_UART0== LPC_UART1)
{}

使用特权

评论回复
5
光轮TreeOS| | 2020-3-30 09:07 | 只看该作者
zhuludiqing 发表于 2020-3-24 21:41
LPC_UART是用#define定义的宏定义,已经是LPC_UART0了,后面这个判断是不是就没意义了?宏定义还可以被结 ...

已经是LPC_UART0,后面就不会判断了。

使用特权

评论回复
6
ayb_ice| | 2020-4-2 13:52 | 只看该作者
就是移植用的,可以选择使用UART0或UART1完成功能

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

33

帖子

2

粉丝