OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5518|回复: 4

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

[复制链接]

9

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
300
金钱
300
注册时间
2016-4-30
在线时间
52 小时
发表于 2018-12-20 17:50:21 | 显示全部楼层 |阅读模式
1金钱
板子可以接收数据,但是通过 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,请问下各位大神这是哪里出了问题?在网上和官方资料中都没有找到有用的信息

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10562
金钱
10562
注册时间
2017-2-18
在线时间
1912 小时
发表于 2018-12-20 19:54:09 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2018-12-21 02:22:13 | 显示全部楼层
我们寄存器,库函数版本例程都试过么?
回复

使用道具 举报

9

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
300
金钱
300
注册时间
2016-4-30
在线时间
52 小时
 楼主| 发表于 2018-12-21 13:35:35 | 显示全部楼层
正点原子 发表于 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了,原子哥可以提点一下吗?
回复

使用道具 举报

2

主题

24

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
294
金钱
294
注册时间
2019-9-4
在线时间
105 小时
发表于 2021-1-11 17:27:21 | 显示全部楼层
您好 我也遇到了同样的问题 您解决了没
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-3-1 02:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表