新手上路
- 积分
- 28
- 金钱
- 28
- 注册时间
- 2015-6-7
- 在线时间
- 0 小时
|
5金钱
各位前辈:
感谢您抽空看我提的问题,小弟要做的是将一组存在STM32F407中的二进制码通过以太网发送到电脑上
不需要TCP/IP协议栈,直接从表示层映射到数据链路层,故将官方例程中的httpserver程序中的TCP/IP部分去掉,改写程序,主要调用了以下库函数:
[mw_shl_code=c,true] /* configure ethernet (GPIOs, clocks, MAC, DMA) */
ETH_BSP_Config();[/mw_shl_code]
[mw_shl_code=c,true]ETH_DMATxDescChainInit(DMATxDescTab, (uint8_t *)Test, 2);
ETH_Prepare_Transmit_Descriptors(138)
ETH_Start();[/mw_shl_code]
[mw_shl_code=c,true]while(1)
{
ETH_SetDMATxDescOwnBit(&DMATxDescTab[0]);
ETH_SetDMATxDescOwnBit(&DMATxDescTab[1]);
}
[/mw_shl_code]
现已知:
1 。选用RMII接口,连接外部50M晶振,STM32F407中相应的寄存器都设为RMII模式,DP83848初始化时读取相应引脚电平设为RMII
2 。STM32的相关引脚都初始化了
现象:
1.板子运行程序后,电脑上的图标会显示100M已连接,我推测应该是Auto-Negociation的结果,但是明明没有TCPIP协议栈呐, 怎会显示已连接?
2.STM32的TX0,TX1,TX_EN都有信号,但是DP83848不把这些数据往外发(电脑上用wireshark始终捕获不到数据)。
信号如图,黄色信号为TX0,另外的是TX_EN:
提问:DP83848的TX0,TX1,TX_EN上都有信号,为什么DP83848不把这些信号发到电脑上呢?
如有前辈肯指点一二,感激不尽 |
最佳答案
查看完整内容[请看2#楼]
1、电脑上显示100M已经连接上跟你有没有使用TCP/IP协议栈没有关系,DP83848是PHY芯片,只要DP83848上电,并且没有复位,那么DP83848就会自动和电脑连接。
2、DP83848上的两个灯都没亮吗?只要你的DP83848工作正常,即使没有用协议栈,灯也是会闪烁的啊。
|