
本帖最后由 yu0405jie 于 2018-1-26 06:23 编辑 在使用STM32F746 Disc开发板发送数据时,ETH_DMASR寄存器的第三位TJTS置位,按手册中的说明是“此位指示发送 jabber 定时器已过期,这意味着发送器过度有效。发送过程会中止并将其置于停止状态。这会导致对发送 jabber 超时 TDES0[14] 标志进行置位”,但不明白造成超时的原因是什么? 需要说明的是在实验中我没有使用LWIP库,也没有使用HAL库,问题发生在使用UDP发送数据的过程中,由于数据量比较大,我将数据量分了八片,采用环形描述符,描述符第一个缓冲区保存协议首部,第二个缓冲区包含实际数据,大小为1024字节. 我是每采集一片数据(时间大约0.6s),就对对应的描述符状态进行更新,当八片数据全部采集完成后调用发送指令(写DMA 发送轮询要求寄存器),此时会提示上述错误。 实验中ping、arp以及UDP发送一帧数据(不分片)时都没有问题,只是当分片时会出现该问题。 |
STM32F723ZET6使用ADC捕获标准正弦波并通过USB主动上报,正弦波重新拟合后存在凹陷峰?
STM32F769是否可以部署边缘AI
STM32F723ZET6配置内部USB PHY的高速模式,初始化的时候usb init无法通过,要怎么修改配置呢?
训练好的ai模型导入cubemx不成功咋办,试了好几个模型压缩了也不行,ram占用过大,有无解决方案?
【STM32F769I-DISC1】LVGL在使用SPI_DMA数据发送时出现错误。
STM32F769I-DISC1的内存地址映印射如果查找
TouchGFX4.25.0 生成工程代码时报TouchGFX CMake projects only support ARM GCC toolchain.
求助
STM32F767+DP83848 LWIP+UDP 大量数据分片发送问题???
请问有STM32F750型号的芯片原理图嘛?
这个问题的原因在于自己对UDP分包和以太网DMA描述符的关系的理解上有错误。
原来认为一个UDP分了八片,对应八个描述符,那就是一个完整的帧跨越了8个描述符,因此将第一个描述符标记为第一个,第八个描述符标记为了最后一个。但实际情况是,当一个UDP包分了八片时,每一片都是一个完整的帧,也就是每一个描述符都包含一个完整的帧,都需要标记为第一个和最后一个。
这可是昨晚睡觉的时候突然想到的,哈哈
恭喜恭喜,找到问题就好。
我也琢磨了半天,正要找个带网络的给试试呢。这下好了,你解决了,该向你学习了,也避免以后自已用时走弯路