stm32F4+dp83848 例程问题

2019-03-23 19:42发布

keil4.53例程 Keil453ARMBoardsSTSTM3240G-EVALRLTCPnetLibrary下有一个DP83848的驱动,
里面读PHY的代码是
static U16 read_PHY (U32 PhyReg) {
  /* Read a PHY register 'PhyReg'. */
  U32 tout;
  ETH->MACMIIAR = DP83848C_DEF_ADR << 11 | PhyReg << 6 | MMAR_MB;
  /* Wait until operation completed */
  tout = 0;
  for (tout = 0; tout < MII_RD_TOUT; tout++) {
    if ((ETH->MACMIIAR & MMAR_MB) == 0) {
      break;
    }
  }
  return (ETH->MACMIIDR & MMDR_MD);
}
我不明白的是 ETH->MACMIIAR = DP83848C_DEF_ADR << 11 | PhyReg << 6 | MMAR_MB; 只是对一个结构体成员赋值啊,并没有对芯片的操作啊,为什么下面一句
就可以等待芯片操作结束信号呢? write_PHY子程序也有这个问题,它到底在哪里对PHY芯片进行操作啊,快崩溃了。 此帖出自小平头技术问答
0条回答

一周热门 更多>