使用的是M487开发板,把官网给的EMAC_TxRx例程烧录,然后接入网线到以太网接口,以太网旁边的灯是亮的,但过了一段时间以太网的灯灭了,ping IP也不成功,我连代码都没修改,刚开始也能获取到IP,这不懂是啥原因了,是代码问题还是以太网的接口有问题
void EMAC_TX_IRQHandler(void)
{
// Clean up Tx resource occupied by previous sent packet(s)
EMAC_SendPktDone();
}
/**
* @brief EMAC Rx interrupt handler.
* @param None
* @return None
*/
void EMAC_RX_IRQHandler(void)
{
int i=0;
while(1)
{
printf("u32PktLen =%drn",u32PktLen);
// Check if there's any packets available
if(EMAC_RecvPkt(auPkt, u32PktLen) == 0)
break;
// Process receive packet
process_rx_packet(auPkt, u32PktLen);
for(i=0;iMODE = ~(GPIO_MODE_MODE2_Msk | GPIO_MODE_MODE3_Msk);
/* Enable External XTAL (4~24 MHz) */
CLK_EnableXtalRC(CLK_PWRCTL_HXTEN_Msk);
/* Waiting for 12MHz clock ready */
CLK_WaitClockReady( CLK_STATUS_HXTSTB_Msk);
/* Switch HCLK clock source to HXT */
CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_HXT,CLK_CLKDIV0_HCLK(1));
/* Set core clock as PLL_CLOCK from PLL */
CLK_SetCoreClock(FREQ_192MHZ);
/* Set both PCLK0 and PCLK1 as HCLK/2 */
CLK->PCLKDIV = CLK_PCLKDIV_APB0DIV_DIV2 | CLK_PCLKDIV_APB1DIV_DIV2;
/* Enable IP clock */
CLK_EnableModuleClock(UART0_MODULE);
CLK_EnableModuleClock(EMAC_MODULE);
/* Select IP clock source */
CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UART0SEL_HXT, CLK_CLKDIV0_UART0(1));
// Configure MDC clock rate to HCLK / (127 + 1) = 1.5 MHz if system is running at 192 MHz
CLK_SetModuleClock(EMAC_MODULE, 0, CLK_CLKDIV3_EMAC(127));
/* Update System Core Clock */
/* User can use SystemCoreClockUpdate() to calculate SystemCoreClock. */
SystemCoreClockUpdate();
/* Set GPB multi-function pins for UART0 RXD and TXD */
SYS->GPB_MFPH = ~(SYS_GPB_MFPH_PB12MFP_Msk | SYS_GPB_MFPH_PB13MFP_Msk);
SYS->GPB_MFPH |= (SYS_GPB_MFPH_PB12MFP_UART0_RXD | SYS_GPB_MFPH_PB13MFP_UART0_TXD);
// Configure RMII pins
SYS->GPA_MFPL |= SYS_GPA_MFPL_PA6MFP_EMAC_RMII_RXERR | SYS_GPA_MFPL_PA7MFP_EMAC_RMII_CRSDV;
SYS->GPC_MFPL |= SYS_GPC_MFPL_PC6MFP_EMAC_RMII_RXD1 | SYS_GPC_MFPL_PC7MFP_EMAC_RMII_RXD0;
SYS->GPC_MFPH |= SYS_GPC_MFPH_PC8MFP_EMAC_RMII_REFCLK;
SYS->GPE_MFPH |= SYS_GPE_MFPH_PE8MFP_EMAC_RMII_MDC |
SYS_GPE_MFPH_PE9MFP_EMAC_RMII_MDIO |
SYS_GPE_MFPH_PE10MFP_EMAC_RMII_TXD0 |
SYS_GPE_MFPH_PE11MFP_EMAC_RMII_TXD1 |
SYS_GPE_MFPH_PE12MFP_EMAC_RMII_TXEN;
// Enable high slew rate on all RMII TX output pins
PE->SLEWCTL = (GPIO_SLEWCTL_HIGH << GPIO_SLEWCTL_HSREN10_Pos) |
(GPIO_SLEWCTL_HIGH << GPIO_SLEWCTL_HSREN11_Pos) |
(GPIO_SLEWCTL_HIGH << GPIO_SLEWCTL_HSREN12_Pos);
/* Lock protected registers */
SYS_LockReg();
}
// This sample application can response to ICMP ECHO packets (ping)
// IP address is configure with DHCP, but if a lease cannot be acquired, a static IP will be used.
int main(void)
{
SYS_Init();
UART_Open(UART0, 115200);
Led_init();
key_init();
TIM_init();
// Select RMII interface by default
EMAC_Open(g_au8MacAddr);
// Init phy
EMAC_PhyInit();
NVIC_EnableIRQ(EMAC_TX_IRQn);
NVIC_EnableIRQ(EMAC_RX_IRQn);
EMAC_ENABLE_RX();
EMAC_ENABLE_TX();
printf("emaec enable rx dfksa rn");
// if (dhcp_start() < 0)
// {
// // Cannot get a DHCP lease, use static IP.
// printf("DHCP failed, use static IP 192.168.10.10n");
// g_au8IpAddr[0] = 0xC0;
// g_au8IpAddr[1] = 0xA8;
// g_au8IpAddr[2] = 0x0A;
// g_au8IpAddr[3] = 0x0A;
// }
if (dhcp_start() > 0)
{
printf(" IP is %d.%d.%d.%dn",g_au8IpAddr[0],g_au8IpAddr[1],g_au8IpAddr[2],g_au8IpAddr[3]);
}
while(1);
}
共2条
1/1 1 跳转至页
M487开发板接入网线到以太网接口,过了一段时间以太网的灯灭了,pingIP也不成功的原因?
关键词: 以太网 开发板
2楼
1. 物理连接问题:检查网线是否插好,并确保连接的网络设备(例如交换机或路由器)处于正常工作状态。还可以尝试更换网线或连接到其他网络设备以排除故障。
2. IP地址冲突:检查开发板和网络中的其他设备是否具有相同的IP地址。确保每个设备都具有唯一的IP地址。
3. 防火墙设置:检查网络设备或电脑上的防火墙设置,确保没有阻止对该IP地址的ping请求。
4. 软件配置问题:检查代码中的配置参数是否正确。特别是,检查代码中是否正确设置了以太网接口的参数,例如IP地址、子网掩码和网关地址。
5. 资源竞争:确保代码中的资源(例如内存或处理器资源)是否正确分配和释放。如果资源不足,可能会导致网络连接失败。
6. 驱动程序问题:检查官方提供的EMAC_TxRx例程是否存在已知的问题或错误。尝试查找并修复任何已知的问题,或尝试使用其他可靠的驱动程序。
7. 硬件故障:如果排除了上述所有可能的问题,那么可能存在硬件故障。检查开发板的以太网接口是否存在损坏或其他故障,并考虑更换开发板或与制造商联系以获取支持。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |