本帖最后由 衔胆栖冰 于 2017-7-21 14:56 编辑 @ @1 ^! L) c* x3 [$ [4 s; o4 | 原本报了线下的培训,结果因为工作原因无法前往参加。没想到社区有视频直播,忙里偷闲的开了小窗口看来起来。按照规矩,先来签个到。/ l* t, o( Q' B1 ^ ç¾å° 上午的培训,主要介绍了网络底层的东西,主要有网络结构、以太网外部phy的使用,MAC、STM32以太网DMA和接收方式轮询(no os),中断(os)等,同时也介绍了lwip部分,主要讲了network interface、lwip memory(接收数据用动态申请)和PCB等。" ]; j2 t; `1 H1 ?% Z 下午主要是实验环节部分。6 C+ b% q' z8 d% o9 ]- w( g) s 作为一名小白,下载了工程,IAR工程,基于HAL库,集成了lwip和freertos, 对于“一keil到底”和“一直裸奔”的我也是一脸迷茫啊。 还好官方提供了“填坑说明”, 这也是挺照顾小白的。而且各种文档都比较齐全。 按照规则去填坑:1 T B& y. S! |6 y/ x$ [& Q TODO1:RMII/MII接口设置错误 6 \% v* O1 A4 @( F- ?6 _ 找到ethernetif.c ,把 void low_level_init(struct netif *netif)函数中的EthHandle.Init.MediaInterface = ETH_MEDIA_INTERFACE_MII;改为EthHandle.Init.MediaInterface = ETH_MEDIA_INTERFACE_RMII; TODO2:PHY地址设置错误 找到stm32f7xx_hal_conf.h,把PHY的地址为 #define LAN8742A_PHY_ADDRESS 0x00U TODO3:检查PHY状态寄存器的地址是否错误 同样在stm32f7xx_hal_conf.h中找到相关的宏,修改如下2 i/ o" X, U- l( H TODO4:调用netif_add向Lwip协议栈注册网卡接口的代码遗漏 找到network.c,把network_init(void)中的netif_add函数补全为netif_add(&Netif, &addr, &netmask, &gw, NULL, ðernetif_init, ðernet_input);" z; e- h* T, C, M, Z" t 完成了这4步,编译后下载到开发板并运行,通过串口打印:5 d( D/ B1 t& r: h$ c 任务1完成了,可是,问题来了.......$ g9 b4 z# e* g 根据规则,按下蓝色按钮,出现如文档提示,但是发y一直没反应,无法进行下一步。 检查网络,ping了一下, 这网络.......我开始怀疑是不是硬件没连好,于是给开发板烧了个STM32Cube_FW_F7_V1.7.0里的demo跑了一下," H: D. q6 U! | L 库里的demo能跑,这就尴尬了...... 就在我百思不得其解的时候,丫丫大神来救场了,) [! r+ G1 z2 ?/ q$ N0 A6 t [原创] 【STM32以太网在线培训】+HTTP协议更新固件 https://www.stmcu.org.cn/module/forum/thread-612628-1-1.html 把我激动得,马上下了大神的工程,根据大神的提示,一步一步去做,突然意识到我忽略了双bank启动什么鬼,F7这高端货小白还是一次摸。. @; C! w* f" K7 g: K' n 下了个ST-LINK Utility, 修改好之后,erase chip操作,再编译下载。当我摆好姿势准备看结果的时候,现实的一个耳光...... 此刻我都不淡定了,到底是哪里操作不当?0 [: O f* E+ T/ s& i! X2 b, U 不是所有的剧本都是喜剧,不是所有的故事都有幸福美满的结局!剩下的操作,等我解决了再补全。% }& n, q7 r2 t( i+ p2 T + X/ ]/ E# W1 v$ Q- t N @ 望各路大神指点迷津。小弟不胜感激。 $ Z: U7 e6 w( G3 P . f5 u* x4 z* b) j5 z$ j( _ 0 F6 }, s! \/ G8 b9 t8 H ! K# p: Z; n6 n% N* x e5 s |
然后我看你,发Y没反应的这个问题,我建议你换个串口调试工具试试看!1 [2 T" s1 C" W1 p; X# ?" O6 W
可以使用putty或者secure crt之类的工具
谢谢! 可是ping断断续续,是什么问题呢?
这个有可能是自带的协议栈还没有优化过,你可以下载最新的协议栈覆盖进去再尝试尝试
好的,我再试下,多谢
还没有