各位前辈:
感谢您抽空看我提的问题,小弟要做的是将一组存在
STM32F407中的二进制码通过以太网发送到电脑上
不需要TCP/IP协议栈,直接从表示层映射到数据链路层,故将官方例程中的httpserver程序中的TCP/IP部分去掉,改写程序,主要调用了以下库函数:
[C]
纯文本查看 复制代码
/* configure ethernet (GPIOs, clocks, MAC, DMA) */ ETH_BSP_Config();[C]
纯文本查看 复制代码
ETH_DMATxDescChainInit(DMATxDescTab, (uint8_t *)Test, 2);ETH_Prepare_Transmit_Descriptors(138)ETH_Start();[C]
纯文本查看 复制代码
while(1) { ETH_SetDMATxDescOwnBit(&DMATxDescTab[0]); ETH_SetDMATxDescOwnBit(&DMATxDescTab[1]); }
现已知:
1 。选用RMII接口,连接外部50M晶振,STM32F407中相应的寄存器都设为RMII模式,DP83848初始化时读取相应引脚电平设为RMII
2 。STM32的相关引脚都初始化了
现象:
1.板子运行程序后,电脑上的图标会显示100M已连接,我推测应该是Auto-Negocia
tion的结果,但是明明没有TCPIP协议栈呐, 怎会显示已连接?
2.STM32的TX0,TX1,TX_EN都有信号,但是DP83848不把这些数据往外发(电脑上用wireshark始终捕获不到数据)。
信号如图,黄色信号为TX0,另外的是TX_EN:
提问:DP83848的TX0,TX1,TX_EN上都有信号,为什么DP83848不把这些信号发到电脑上呢?
如有前辈肯指点一二,感激不尽