器件型号:MSP432E401Y
您好!
我从 TI 购买了一款新的 MSP432E401、并将其放置在具有多条 UART 线路和以太网连接的定制板上。 我不知道您必须分配自己的 MAC 地址、因此我使用了 MSP432E401Y LaunchPad 中的 MAC 地址。 (使用 FlashGet),然后在板上使用具有相同 uiUser0和 uiUser1值的 FlashSet()。 代码在中挂起
SysCtlPeripheralReset (SYSCTL_Periph_EPHY0);
while (!SysCtlPeripheralReady (SYSCTL_Periph_EPHY0))
{
//
//等待 PHY 复位完成。
//
}
在 EMACPHYConfigSet (uint32_t ui32Base、uint32_t ui32Config)函数中。 我将在初始化 LWIP 时执行此操作。 下面是我用于设置 MAC 地址的代码。 在复位内部 PHY 时、是否缺少其他内容或我的代码正在处理的另一个原因。
uint32_t ui32User0 = 7798640;
uint32_t ui32User1 = 6728988;
uint8_t pui8MACArray[8];
// FlashUserSet (ui32User0、ui32User1);
if ((ui32User0 == 0xffffffff)||(ui32User1 == 0xffffffff)
{
//
//我们点动点动点动点动点动点/ b*n mmmjmjsd 永远不会来这里。 如果 MAC 地址有、则这是一个错误
//未编程到器件中。 退出程序。
//告知用户没有 MAC 地址
//
//UARTprintf ("未对 MAC 进行编程!\n");
while (1)
{
//执行以错误模式闪烁 LED
}
}
//将24/24拆分 MAC 地址从 NV RAM 转换为32/16拆分 MAC
//对硬件寄存器进行编程所需的地址,然后对 MAC 进行编程
//将地址输入以太网控制器寄存器。
////
pui8MACArray[0]=((ui32User0 >> 0)& 0xff);
pui8MACArray[1]=((ui32User0 >> 8)& 0xff);
pui8MACArray[2]=((ui32User0 >> 16)& 0xff);
pui8MACArray[3]=((ui32User1 >> 0)& 0xff);
pui8MACArray[4]=((ui32User1 >> 8)& 0xff);
pui8MACArray[5]=((ui32User1 >> 16)& 0xff);
IP4_addr_t local;
ip4_addr_t 网络掩码;
IP4_addr_t 网关;
IP4_ADDR (局部、51、2、168、192);
IP4_ADDR (网络掩码、0、255、255、255);
IP4_ADDR (&gateway、1、2、168、192);
uint32_t g_ui32SysClock = MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz |
SYSCTL_OSC_MAIN |
SYSCTL_OSC_INT |
SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_480)、25000000);
lwIPInit (g_ui32SysClock、macAddress、local.addr、netmask.addr、gateway.addr、 ipaddr_use_static); //代码在执行此行时挂起、具体说明在 EMAPPHYConfigSet (uint32_t ui32Base、uint32_t ui32Config)中;