你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32以太网在线培训】+ 769 TCP Server

[复制链接]
小小超 发布时间:2017-7-24 01:12
首先感谢与非网和ST社区组织的这次以太网在线培训活动,而我有幸申请到了一块STM32F769I-DISCI的开发板,而我也在培训的当天,听了一整天的培训内容,虽然过程当中也有其它事走开了。总的来说,培训活动做得还不错,不用去现场也可以听到看到一些平时上课的内容。由于以太网涉及到的知识面比较广泛,而我也是初次接触这方面,所以还是了解的不够深刻,还需要强化学习。$ y1 a! r7 |+ ~, P& N
  由于官方的例程Ethernet Training Hands on,下载到板上总是不能PING得通,分析了很久代码也不知道是那里有问题。所以没有拿官方的例程做实验。自己用STM32CUBEMX重新建立了个KEIL的工程,这下没问题了。建立工程参考小破的帖子:* H, H" g0 {$ _" M) [8 z3 j( }
https://www.stmcu.org.cn/module/forum/thread-609819-1-1.html【实战经验】从零开始使用 CubeMX 创建以太网工程
0 i( e1 e: A: w- F4 s4 T/ @) C3 c7 r! U先上在线培训课的照片:
, {5 F, R' o& l( A, w: d' N; Q 培训.jpg 培训1.jpg 培训2.jpg 培训3.jpg
6 x2 d% P! X0 C2 U8 E% D  B: H不得不说,STM32CUBEMX是个非常好用的软件,生成的代码几乎不用修改就能使用了。接下来说说利用STM32CUBEMX建立以太网工程的过程:
- X- J# y: ?  Z2 Z  Z$ s- X& k 1.jpg ( c& `0 {. @( e. U2 F; N
新建工程,选择Board Selector,选择STM32F769DISC1,双击
  I2 {# @% I1 i, t2 }  C, @1 }& U4 @ 2.jpg 7 L& u- a, m; s. |0 A+ X
ETH-MODE选择RMII,打开LWIP。
/ p. C+ Z0 a% |+ Q2 _2 d时钟选项是已经自动配置好了,不用管。
! \$ ?' B" R7 L 3.jpg & ~& ^" M8 p* ]
配置选项点击ETH,在Parameter Settings页面,修改MAC地址为:02:00:00:00:00:00,修改PHY地址为0.其它保持默认。
# e6 S$ G: T' }5 u3 ]0 q 4.jpg - r3 B  P1 q3 x& |
在LWIP Configuration页面,关闭DHCP,由于我不用路由,直接是开发板连到笔记本的网口,所以这个选项直接关闭,手动指定静态的IP地址。( @' B0 C0 I, |
5.jpg
0 A7 m4 x' g# Y$ v  o: u: L/ m网口的引脚都自动配置好了。真方便。
8 i' \% [0 w9 k3 w; f 6.jpg
! O9 U- J5 z8 ]$ x; e; x9 Y直接生成KEIL5工程。: ^( f7 ^# _% y* s9 a
7.jpg
: P+ Q$ U% }8 [& j! t加入tcp_echoserver.c文件,功能引用小破的:
% O; l# L: \9 u; E' d2 e1.新建tcp_echoserver.c文件,在tcp_echoserver.c里要做下面这几件事情:/ R3 w1 }0 H9 N& n6 w, v! j
1)新建一个tcp_echoserver_pcb(调用tcp_new函数);8 A$ A) M$ J+ P
2)将新建的tcp_echoserver_pcb与要监听的端口绑定(调用tcp_bind函数)8 y$ w/ b# i" P7 S
3)转成监听状态(调用tcp_listen函数)  A4 g; D  U7 G' ~
4)注册回调函数tcp_echoserver_accept,当有新连接建立后会调用该函数(调用tcp_accept函数)
  l2 Z4 V$ Q; p6 T  D& w4 _# J9 W  H5)注册回调函数tcp_echoserver_recv,当该连接接收到数据后会调用该函数(调用tcp_recv函数)
: \8 \" f( P& g# T/ y+ D- w  W6)完成tcp_echoserver_recv函数,在该函数内,将收到的数据再发出去。; T+ T% d: I* G( O: O! O: Q
8.jpg
8 ?) m8 Y. I( e( w工程编译没错。下载到开发板。用网线将电脑与开发板连接起来。把电脑的本地连接,改为与开发板的IP地址同一IP段。% V$ {# m5 K6 ]0 D. x6 h
9.jpg : Z& N: A, B  P* ]$ q# ^& d; Z0 U
打开网络调试软件,PING 192.168.0.10,已经连接上了。2 H* B; @1 J) N: f" L% S& t
10.jpg
+ ]) ?4 U3 V$ N9 ?! }) Y) S打开TCP连接,从电脑通过TCP发送给开发板数据,开发板又发回给电脑,通讯正常。至此,配置实验完成。
/ x4 d8 o2 `* W1 B' c' W总结:
8 e$ n5 P& T" N! M/ z1 V; w; n' [以太网是一个比较复杂的协议,只有配合官方的例程修改,再加上STM32CUBEMX软件,就能很快的能开发出自己的应用,但也感觉到,不了解底层的软件,还是不能很好的应用。而在线培训的内容也似乎讲得太快了。内容上大多是略过一下。还有声音、图像方面也不是很好。很期待下一次的培训能够做得更好,内容上更加详细一点。
. l- ~: {0 Z2 h) F下面放上工程文档:- z( `2 x* m5 [. Y) f
TEST_769I.part01.rar (10 MB, 下载次数: 101)
收藏 4 评论8 发布时间:2017-7-24 01:12

举报

8个回答
zero99 回答时间:2017-7-24 08:41:55
谢谢分享,楼主后来IAR装好了啊
MrJiu 回答时间:2017-7-24 08:43:54
围观支持!!!
埃斯提爱慕 回答时间:2017-7-24 18:36:38
提示: 作者被禁止或删除 内容自动屏蔽
小小超 回答时间:2017-7-25 08:09:14
zero99 发表于 2017-7-24 08:41
! g& Q2 U. C- S: q' ?- Q4 [谢谢分享,楼主后来IAR装好了啊
" u5 W& g* F- H( R
原来下载的IAR有问题,后来重新下了一个就没事了。不过发觉keil更习惯使用
zero99 回答时间:2017-7-25 10:08:23
ts2000 发表于 2017-7-25 08:09
, K- B4 Y8 J! i* I! z# p' [! |原来下载的IAR有问题,后来重新下了一个就没事了。不过发觉keil更习惯使用 ...
/ {1 m8 Q% [+ Z2 H* f6 l
嗯,用起来顺手就好~
debra1 回答时间:2017-8-16 11:06:03
能ping通,但是调试助手无法打开tcp链接。请问什么原因
小小超 回答时间:2017-8-16 11:07:46
debra1 发表于 2017-8-16 11:06* G8 G5 m6 {; W4 d. K  v9 e0 ^
能ping通,但是调试助手无法打开tcp链接。请问什么原因
; X' ^$ }# M+ H! k; H3 g
端口不对。
debra1 回答时间:2017-8-16 11:08:38
源端口是什么?目的端口不是7吗?

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版