STM32H743开发板的ETH发送不了数据

2019-07-20 04:28发布

板子可以接收数据,但是通过 HAL_ETH_Transmit(&heth,&TxConfig,0)发送数据时,始终卡在/* Wait for data to be transmitted or timeout occured */while((dmatxdesc->DESC3 & ETH_DMATXNDESCWBF_OWN) != (uint32_t)RESET)这个地方,然后时间溢出返回HAL_ERROR,请问下各位大神这是哪里出了问题?在网上和官方资料中都没有找到有用的信息
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
737056091
2019-07-20 12:58
正点原子 发表于 2018-12-21 02:22
我们寄存器,库函数版本例程都试过么?

移植到我的板子试过,可以的,但是我不需要lwip,我就想直接进行数据发送,所以我就把写成这样来测试一下:
int ETH_PHY_SEND(uint8_t* pack,uint16_t framelength)
{
        int errval = HAL_ERROR;
        ETH_BufferTypeDef Txbuffer[ETH_TX_DESC_CNT];
        Txbuffer[0].buffer = pack;
        Txbuffer[0].len = framelength;
        Txbuffer[0].next = NULL;
       
        TxConfig.TxBuffer = Txbuffer;
        TxConfig.Length += framelength;
               
        SCB_CleanInvalidateDCache();
        errval = HAL_ETH_Transmit(&heth,&TxConfig,0);
               
        return errval;       
}

单步调试可以发现只有第一次可以发送数据,以后再进入这个函数就返回HAL_ERROR了,原子哥可以提点一下吗?

一周热门 更多>